基于RS 485總線的蓄電池充放電裝置遠程控制系統
3 通信軟件設計
3.1網絡協議
RS 485是一種硬件連接說明標準,并沒有指定所使用的通信協議。為了使命令和數據能在網絡上正確傳輸,必須在數據鏈路層上提供一種網絡協議,當物理層的比特流出現錯誤時能起到檢驗和校正的功能。參見(見圖1)遠程控制網絡結構簡圖,單片機采集子系統將采集到的蓄電池狀態上傳到PC,命令控制子系統主要是接受PC機的各種命令并對充電系統進行控制。兩子系統與PC機之間均采用主從協議,串口通信,其通信參數設置為:傳輸速度:9 600 b/s;校驗位:無;數據位:8;停止位:1。
3.1.1上位機向下位機發送控制命令
(1)上位機發送
擴展在雙絞線上的每個充電模塊必須有惟一的地址編號,以便保證PC機發送控制命令時能準確無誤地找到所需的充電的模塊。分布式模塊的命令格式被分為發送與接收兩部分,格式如下:

每一幀代表的信息如下:
起始位:單片機與PC機之間通訊的起始標志;地址位:下位機的地址號設計為01H~1FH(即1~31),上位機的地址為00H。
命令類型:0為停機命令,1為充電命令;設定數值:控制命令為充電時,數值量為充電電流;(2)控制板返回:Y(如果接收成功則返回Y)。
3.1.2 下位機向上位機發送采集數據
(1)下位機每隔10 s間斷性的發送電壓電流采集值給上位機;

(2)采集板返回7個連續字符(中間不插入空格),格式如下:

前3個字符為蓄電池端電壓,接著3個為充電電流值。蓄電池端電壓用3個字符表示,如:51.2 V~512 V。充放電電流3個字符表示:15.7 A~157 A(如果電流值10 A,左邊補0,如:8.9~089)。注意:所有的字符均為10進制數值對應的ASCⅡ碼。考慮到單片機要及時將采集到的數據發送出去,故使用無握手的通信機制,不等待確認幀就不停發送。另外,若接收方在約定時問內未收到數據,則發送復位幀,雙方回到通信程序的開始并清空緩沖區,然后重新同步。
評論