基于RS 485總線的蓄電池充放電裝置遠(yuǎn)程控制系統(tǒng)
3 通信軟件設(shè)計(jì)
3.1網(wǎng)絡(luò)協(xié)議
RS 485是一種硬件連接說明標(biāo)準(zhǔn),并沒有指定所使用的通信協(xié)議。為了使命令和數(shù)據(jù)能在網(wǎng)絡(luò)上正確傳輸,必須在數(shù)據(jù)鏈路層上提供一種網(wǎng)絡(luò)協(xié)議,當(dāng)物理層的比特流出現(xiàn)錯(cuò)誤時(shí)能起到檢驗(yàn)和校正的功能。參見(見圖1)遠(yuǎn)程控制網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)圖,單片機(jī)采集子系統(tǒng)將采集到的蓄電池狀態(tài)上傳到PC,命令控制子系統(tǒng)主要是接受PC機(jī)的各種命令并對(duì)充電系統(tǒng)進(jìn)行控制。兩子系統(tǒng)與PC機(jī)之間均采用主從協(xié)議,串口通信,其通信參數(shù)設(shè)置為:傳輸速度:9 600 b/s;校驗(yàn)位:無;數(shù)據(jù)位:8;停止位:1。
3.1.1上位機(jī)向下位機(jī)發(fā)送控制命令
(1)上位機(jī)發(fā)送
擴(kuò)展在雙絞線上的每個(gè)充電模塊必須有惟一的地址編號(hào),以便保證PC機(jī)發(fā)送控制命令時(shí)能準(zhǔn)確無誤地找到所需的充電的模塊。分布式模塊的命令格式被分為發(fā)送與接收兩部分,格式如下:
每一幀代表的信息如下:
起始位:?jiǎn)纹瑱C(jī)與PC機(jī)之間通訊的起始標(biāo)志;地址位:下位機(jī)的地址號(hào)設(shè)計(jì)為01H~1FH(即1~31),上位機(jī)的地址為00H。
命令類型:0為停機(jī)命令,1為充電命令;設(shè)定數(shù)值:控制命令為充電時(shí),數(shù)值量為充電電流;(2)控制板返回:Y(如果接收成功則返回Y)。
3.1.2 下位機(jī)向上位機(jī)發(fā)送采集數(shù)據(jù)
(1)下位機(jī)每隔10 s間斷性的發(fā)送電壓電流采集值給上位機(jī);
(2)采集板返回7個(gè)連續(xù)字符(中間不插入空格),格式如下:
前3個(gè)字符為蓄電池端電壓,接著3個(gè)為充電電流值。蓄電池端電壓用3個(gè)字符表示,如:51.2 V~512 V。充放電電流3個(gè)字符表示:15.7 A~157 A(如果電流值10 A,左邊補(bǔ)0,如:8.9~089)。注意:所有的字符均為10進(jìn)制數(shù)值對(duì)應(yīng)的ASCⅡ碼??紤]到單片機(jī)要及時(shí)將采集到的數(shù)據(jù)發(fā)送出去,故使用無握手的通信機(jī)制,不等待確認(rèn)幀就不停發(fā)送。另外,若接收方在約定時(shí)問內(nèi)未收到數(shù)據(jù),則發(fā)送復(fù)位幀,雙方回到通信程序的開始并清空緩沖區(qū),然后重新同步。
評(píng)論