基于AVR的無線LED屏控制系統(tǒng)設(shè)計
3、 通信協(xié)議設(shè)計
由于本系統(tǒng)采用了GPRS 網(wǎng)絡(luò)的通信模式, 所以上位機(jī)設(shè)置一個LED 控制器管理平臺來管理所有的LED 控制器。這個LED 控制器管理平臺(即"上位機(jī)軟件")通過TCP/IP 協(xié)議與LED 屏無線控制器進(jìn)行通信,而且可以同時控制多臺。上位機(jī)軟件與LED 屏無線控制器之間采用GPRS 方式進(jìn)行連接, 它們之間的連接關(guān)系如圖4 所示。
LED 屏無線控制器是客戶端, 其數(shù)據(jù)的收發(fā)通過上位機(jī)軟件控制。當(dāng)LED 屏控制器上電運(yùn)行后,會主動向上位機(jī)軟件建立連接并握手,登錄成功后,上位機(jī)軟件與LED 控制器才能進(jìn)行數(shù)據(jù)傳輸。
上位機(jī)軟件與各LED 屏無線控制器之間通信協(xié)議是以TCP 協(xié)議為基礎(chǔ)協(xié)議, 并自定義了一個STCP協(xié)議層用于封裝PDU(數(shù)據(jù)單元)數(shù)據(jù)層協(xié)議。STCP 協(xié)議層只為PDU 的承載框架, 提供安全可靠的傳輸過程。通信網(wǎng)絡(luò)層結(jié)構(gòu)圖如圖5 所示。
圖5 通信網(wǎng)絡(luò)層結(jié)構(gòu)圖
在自定義的STCP 通信協(xié)議中,制定了一系列管理無線LED 顯示屏控制器的通信指令,主要為上位機(jī)軟件的編程提供具體的通信結(jié)構(gòu)和規(guī)范。通信包格式如表1所示:
表1 通信包格式
注:
完整數(shù)據(jù)長度: 整型字節(jié)(4 個字節(jié)長度),整個通信包的長度;
命令字: 根據(jù)無線LED 顯示屏控制器通信指令表,見表2;
顯式控制字: 0-無;1-上移;2-下移;3-左移;4-右移;5-靜止;6-閃爍;7-刪除;
數(shù)據(jù)內(nèi)容:需要顯示信息內(nèi)容;
校驗和: 全部數(shù)據(jù)累加校驗和;
根據(jù)無線LED 顯示屏控制器實際運(yùn)用需要,制定了發(fā)送、刪除、顯示、連接、斷開指令等。這些指令的代碼和主要作用如表2 所示。
表2 通信指令表
上位機(jī)軟件通過Internet 網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到無線LED 顯示屏控制器后,LED 顯示屏控制器需要對收到的數(shù)據(jù)進(jìn)行處理。根據(jù)指令的不同,可以控制LED 顯示屏的顯示內(nèi)容及顯示模式(例如上移、下移、左移、右移、靜止、閃爍、刪除等)。
4 、軟件設(shè)計
本系統(tǒng)的軟件設(shè)計包括兩部分: 上位機(jī)軟件和AVR 單片機(jī)的控制程序。上位機(jī)軟件完成與GPRS 模塊的通信, 控制LED 顯示屏上顯示的數(shù)據(jù)信息;AVR單片機(jī)的控制軟件主要完成系統(tǒng)初始化,GPRS 網(wǎng)絡(luò)連接,接收上位機(jī)發(fā)送的信息,分析接收信息內(nèi)容,完成指令, 并按需將發(fā)布信息轉(zhuǎn)換為點陣信息, 送到LED顯示屏進(jìn)行顯示。
4.1 AVR 單片機(jī)的控制程序
AVR 單片機(jī)的控制程序主要完成以下功能:連接GPRS 網(wǎng)絡(luò)、數(shù)據(jù)傳輸、控制LED 屏顯示。
?。?)初始化系統(tǒng)及SIM300 模塊,連接GPRS 網(wǎng)絡(luò);(2)依照顯示屏控制器與上位機(jī)的通信協(xié)議,與上位機(jī)通信握手,接收指令,解析指令,并將顯示數(shù)據(jù)等信息存儲與處理;(3)通過串口驅(qū)動LED 屏,進(jìn)行信息的顯示等。
下面簡單介紹SIM300 模塊與上位機(jī)實現(xiàn)TCP/IP無線通信流程。
AT+CGDCONT=1,"IP","CMNET" --注冊中國移動網(wǎng)絡(luò)
OK
AT+CGCLASS? --顯示GPRS 信息移動的類型
+CGCLASS: "B"
OK
AT+CGATT? --GPRS 服務(wù)附加/分離
+CGATT: 1
OK
AT+CGACT=1,1 --環(huán)境激活
OK
AT +CIPSTART = "TCP","202.196.87.7","2020" -- 啟動
TCP 連接(上位機(jī)IP 地址及端口號)
OK
CONNECT OK --連接成功
AT+CIPSEND --通過TCP 發(fā)送數(shù)據(jù)
> HELLO
SEND OK --發(fā)送成功
陀螺儀相關(guān)文章:陀螺儀原理
評論