資料介紹
現(xiàn)在大部分的儀器設(shè)備都要求能過通過上位機(jī)軟件來操作,這樣方便調(diào)試,利于操作。其中就涉及到通信的過程。在實(shí)際制作的幾個(gè)設(shè)備中,筆者總結(jié)出了通信程序的通用寫法,包括上位機(jī)端和下位機(jī)端等。
1.自定義數(shù)據(jù)通信協(xié)議這里所說的數(shù)據(jù)協(xié)議是建立在物理層之上的通信數(shù)據(jù)包格式。所謂通信的物理層就是指我們通常所用到的RS232、RS485、紅外、光纖、無線等等通信方式。在這個(gè)層面上,底層軟件提供兩個(gè)基本的操作函數(shù):發(fā)送一個(gè)字節(jié)數(shù)據(jù)、接收一個(gè)字節(jié)數(shù)據(jù)。所有的數(shù)據(jù)協(xié)議全部建立在這兩個(gè)操作方法之上。通信中的數(shù)據(jù)往往以數(shù)據(jù)包的形式進(jìn)行傳送的,我們把這樣的一個(gè)數(shù)據(jù)包稱作為一幀數(shù)據(jù)。類似于網(wǎng)絡(luò)通信中的TCPIP協(xié)議一般,比較可靠的通信協(xié)議往往包含有以下幾個(gè)組成部分:幀頭、地址信息、數(shù)據(jù)類型、數(shù)據(jù)長度、數(shù)據(jù)塊、校驗(yàn)碼、幀尾。幀頭和幀尾用于數(shù)據(jù)包完整性的判別,通常選擇一定長度的固定字節(jié)組成,要求是在整個(gè)數(shù)據(jù)鏈中判別數(shù)據(jù)包的誤碼率越低越好。減小固定字節(jié)數(shù)據(jù)的匹配機(jī)會(huì),也就是說使幀頭和幀尾的特征字節(jié)在整個(gè)數(shù)據(jù)鏈中能夠匹配的機(jī)會(huì)最小。通常有兩種做法,一、減小特征字節(jié)的匹配幾率。二、增加特征字節(jié)的長度。通常選取第一種方法的情況是整個(gè)數(shù)據(jù)鏈路中的數(shù)據(jù)不具有隨即性,數(shù)據(jù)可預(yù)測,可以通過人為選擇幀頭和幀尾的特征字來避開,從而減小特征字節(jié)的匹配幾率。使用第二種方法的情況更加通用,適合于數(shù)據(jù)隨即的場合。通過增加特征字節(jié)的長度減小匹配幾率,雖然不能夠完全的避免匹配的情況,但可以使匹配幾率大大減小,如果碰到匹配的情況也可以由校驗(yàn)碼來進(jìn)行檢測,因此這種情況在絕大多說情況下比較可靠。地址信息主要用于多機(jī)通信中,通過地址信息的不同來識(shí)別不同的通信終端。在一對多的通信系統(tǒng)中,可以只包含目的地址信息。同時(shí)包含源地址和目的地址則適用于多對多的通信系統(tǒng)。數(shù)據(jù)類型、數(shù)據(jù)長度和數(shù)據(jù)塊是主要的數(shù)據(jù)部分。數(shù)據(jù)類型可以標(biāo)識(shí)后面緊接著的是命令還是數(shù)據(jù)。數(shù)據(jù)長度用于指示有效數(shù)據(jù)的個(gè)數(shù)。校驗(yàn)碼則用來檢驗(yàn)數(shù)據(jù)的完整性和正確性。通常對數(shù)據(jù)類型、數(shù)據(jù)長度和數(shù)據(jù)塊三個(gè)部分進(jìn)行相關(guān)的運(yùn)算得到。最簡單的做法可是對數(shù)據(jù)段作累加和,復(fù)雜的也可以對數(shù)據(jù)進(jìn)行CRC運(yùn)算等等,可以根據(jù)運(yùn)算速度、容錯(cuò)度等要求來選取。
2.上位機(jī)和下位機(jī)中的數(shù)據(jù)發(fā)送
物理通信層中提供了兩個(gè)基本的操作函數(shù),發(fā)送一個(gè)字節(jié)數(shù)據(jù)則為數(shù)據(jù)發(fā)送的基礎(chǔ)。數(shù)據(jù)包的發(fā)送即把數(shù)據(jù)包中的左右字節(jié)按照順序一個(gè)一個(gè)的發(fā)送數(shù)據(jù)而已。當(dāng)然發(fā)送的方法也有不同。在單片機(jī)系統(tǒng)中,比較常用的方法是直接調(diào)用串口發(fā)送單個(gè)字節(jié)數(shù)據(jù)的函數(shù)。這種方法的缺點(diǎn)是需要處理器在發(fā)送過程中全程參與,優(yōu)點(diǎn)是所要發(fā)送的數(shù)據(jù)能夠立即的出現(xiàn)在通信線路上,能夠立即被接收端接收到。另外一種方法是采用中斷發(fā)送的方法
- 使用51單片機(jī)進(jìn)行鍵盤掃描的程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行流水燈的程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行IIC協(xié)議的解讀程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行1005大數(shù)加法的資料和程序免費(fèi)下載
- 如何進(jìn)行51單片機(jī)的延時(shí)計(jì)算資料和程序免費(fèi)下載的
- 使用單片機(jī)進(jìn)行電流檢測的程序免費(fèi)下載
- 如何使用51單片機(jī)進(jìn)行AD轉(zhuǎn)換的程序資料免費(fèi)下載
- 使用單片機(jī)進(jìn)行中斷的應(yīng)用資料和程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行自動(dòng)循跡智能小車的程序資料免費(fèi)下載 30次下載
- 使用51單片機(jī)進(jìn)行貪吃蛇設(shè)計(jì)的資料和電路圖程序資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行鬧鐘制作的程序免費(fèi)下載
- 使用51單片機(jī)進(jìn)行簡單的串口通訊程序資料免費(fèi)下載
- 使用51單片機(jī)進(jìn)行超聲波測距的程序資料免費(fèi)下載 23次下載
- 使用STM32單片機(jī)進(jìn)行的示波器程序資料免費(fèi)下載 45次下載
- 單片機(jī)進(jìn)行AD轉(zhuǎn)換的C語言程序資料免費(fèi)下載 17次下載
- 單片機(jī)里的程序是如何運(yùn)行? 3911次閱讀
- 使用51單片機(jī)讀寫AT29C040的C語言程序免費(fèi)下載 4529次閱讀
- 單片機(jī)的主程序是如何執(zhí)行的 1w次閱讀
- HD44780讀寫單片機(jī)C51程序免費(fèi)下載 4146次閱讀
- 使用HD44780讀寫單片機(jī)的C51程序詳細(xì)概述 3112次閱讀
- 如何自制一個(gè)AVR單片機(jī)ISP下載線 3894次閱讀
- 如何對STC單片機(jī)進(jìn)行免掉電下載 2118次閱讀
- 51單片機(jī)的ISP下載電路設(shè)計(jì) 3.1w次閱讀
- 如何對51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 單片機(jī)程序設(shè)計(jì)時(shí)如何進(jìn)行優(yōu)化詳細(xì)資料概述 4633次閱讀
- 怎么讀取單片機(jī)程序_單片機(jī)程序是如何執(zhí)行的_如何讀懂單片機(jī)程序 7.4w次閱讀
- ch340g單片機(jī)下載程序電路原理 7.8w次閱讀
- ARDUINO IDE編寫和AVR單片機(jī)程序的下載 9769次閱讀
- 單片機(jī)與程序設(shè)計(jì)(上) 3786次閱讀
- STC單片機(jī)程序燒錄與ISP下載相關(guān)知識(shí) 9934次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論
查看更多