利用單片機(jī)實現(xiàn)多路電壓信號采集系統(tǒng)的設(shè)計
3 串行通信協(xié)議
監(jiān)控計算機(jī)與單片機(jī)的數(shù)據(jù)交換包括如下3個步驟。
(1)單片機(jī)要發(fā)送數(shù)據(jù)時,計算機(jī)會發(fā)送一組字符串過去。該字符串的第一個字符是前導(dǎo)碼,單片機(jī)根據(jù)前導(dǎo)碼辨認(rèn)是否應(yīng)該讀取該字符串,該字符串屬于哪一個命令集。
在前導(dǎo)碼之后是站號,通常以兩個字符代表,以RS-485進(jìn)行網(wǎng)絡(luò)連接,需要用站號來辨別命令是屬于哪一個設(shè)備。站號之后是要解讀的命令或數(shù)據(jù)。
(2)當(dāng)單片機(jī)收到要求字符串,并經(jīng)過辨讀確定后,便會送出計算機(jī)所要求的數(shù)據(jù)。同樣,數(shù)據(jù)被送出時會在數(shù)據(jù)之前加上前導(dǎo)碼與站號,計算機(jī)也有由此辨別數(shù)據(jù)來自何處。
(3)計算機(jī)端收到單片機(jī)發(fā)送回來的字符串,即進(jìn)行解讀檢查的操作。當(dāng)檢查完成后,再送一個確定的字符串給單片機(jī),用以說明計算機(jī)端已成功收到字符串;而若發(fā)送失敗,計算機(jī)也在該回送的字符串中要求單片機(jī)重新發(fā)送數(shù)據(jù)。
另外數(shù)據(jù)發(fā)送時,一般會加上錯誤檢查機(jī)制,最常用的方法是將字符進(jìn)行運(yùn)算,而在字符串的最后加上CheckSum字符,收發(fā)雙方利用Check-Sum字符的檢查判斷字符串的正確性。
本系統(tǒng)設(shè)計的數(shù)據(jù)格式為:
其中,前導(dǎo)碼為一個字節(jié);站號為一個字節(jié);命令/數(shù)據(jù)為一個字節(jié);數(shù)據(jù)長度為一個字節(jié);數(shù)據(jù)內(nèi)容為幾個字節(jié);CheckSum校驗為兩個字節(jié);結(jié)束標(biāo)志位為一個字節(jié)。
4 通信軟件的實現(xiàn)
4.1 監(jiān)控計算機(jī)通信軟件的實現(xiàn)
利用VB提供的具有強(qiáng)大功能的通信控件MsComm,可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,串口狀態(tài)及串口通信的數(shù)據(jù)發(fā)送和接收,以及串口狀態(tài)和串口通信的信息,格式和協(xié)議。監(jiān)控計算機(jī)的通信流程如圖3所示。
4.2 單片機(jī)通信部分的軟件實現(xiàn)
ATMEGA8單片機(jī)帶有一個全雙工通用同步/異步串行收發(fā)模塊USART,該接1:3是一個高度靈活的串行通信設(shè)備。單片機(jī)的通信流程如圖4所示。
評論