基于SIM300的無(wú)線(xiàn)LED顯示屏控制系統設計
4 軟件設計
本系統的軟件設計包括兩部分: 上位機軟件和AVR 單片機的控制程序。上位機軟件完成與GPRS 模塊的通信, 控制LED 顯示屏上顯示的數據信息;AVR單片機的控制軟件主要完成系統初始化,GPRS 網(wǎng)絡(luò )連接,接收上位機發(fā)送的信息,分析接收信息內容,完成指令, 并按需將發(fā)布信息轉換為點(diǎn)陣信息, 送到LED顯示屏進(jìn)行顯示。
4.1 AVR 單片機的控制程序
AVR 單片機的控制程序主要完成以下功能:連接GPRS 網(wǎng)絡(luò )、數據傳輸、控制LED 屏顯示。
(1)初始化系統及SIM300 模塊,連接GPRS 網(wǎng)絡(luò );(2)依照顯示屏控制器與上位機的通信協(xié)議,與上位機通信握手,接收指令,解析指令,并將顯示數據等信息存儲與處理;(3)通過(guò)串口驅動(dòng)LED 屏,進(jìn)行信息的顯示等。
下面簡(jiǎn)單介紹SIM300 模塊與上位機實(shí)現TCP/IP無(wú)線(xiàn)通信流程。
AT+CGDCONT=1,IP,CMNET --注冊中國移動(dòng)網(wǎng)絡(luò )
OK
AT+CGCLASS? --顯示GPRS 信息移動(dòng)的類(lèi)型
+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 -- 啟動(dòng)
TCP 連接(上位機IP 地址及端口號)
OK
CONNECT OK --連接成功
AT+CIPSEND --通過(guò)TCP 發(fā)送數據
> HELLO
SEND OK --發(fā)送成功
4.2 上位機軟件
本系統的上位機軟件主要采用VC 設計一個(gè)通信界面,實(shí)現與LED 遠程控制器通信。用戶(hù)界面部分采用MFC 框架基于Dialog 實(shí)現。在利用Visual C++進(jìn)行通過(guò)TCP/IP 協(xié)議網(wǎng)絡(luò )傳輸數據開(kāi)發(fā)時(shí), 采用IOCP 框架來(lái)實(shí)現Windows Socket 的完成端口模型。
IOCP 即I/O 完成端口(I/O Completion Port),是一個(gè)異步I/O 的API,它可以高效地將I/O 事件通知給應用程序。一個(gè)套接字在被創(chuàng )建后,與一個(gè)完成端口進(jìn)行關(guān)聯(lián)。當一個(gè)事件發(fā)生的時(shí)候,此完成端口就將被操作系統加入一個(gè)隊列中, 然后應用程序可以對核心層進(jìn)行查詢(xún)以得到此完成端口。當某項I/O 操作一旦完成, 某個(gè)可以對該操作結果進(jìn)行處理的工作線(xiàn)程就會(huì )收到一則通知。在此應用程序中創(chuàng )建一定數量的工作線(xiàn)程來(lái)處理重疊I/O 請求的通知。
IOCP 框架的啟動(dòng)流程如圖6 所示。
IOCP 框架的實(shí)現步驟如下:
(1)初始化Winsock 工作環(huán)境,并創(chuàng )建完成端口,創(chuàng )建完成端口線(xiàn)程,建立一個(gè)監聽(tīng)套接字,使套接字與完成端口關(guān)聯(lián)起來(lái);
(2)監聽(tīng)套接字開(kāi)始工作,當監聽(tīng)套接字接收到客戶(hù)端TCP 的連接請求時(shí),IOCP 會(huì )獲取并處理該消息,創(chuàng )建對應的Socket 對象進(jìn)行接收處理,完成連接工作;
(3)當客戶(hù)端完成TCP 連接后,可以開(kāi)始數據通信,由I/O 線(xiàn)程來(lái)負責分發(fā)I/O 請求,通過(guò)線(xiàn)程池來(lái)分配邏輯處理環(huán)境;
(4)在接收數據后,將微軟提供的一個(gè)I/O 數據結構(WSAOVERLAPPED)進(jìn)行擴展,完成協(xié)議解析和數據處理。
此外,這里的線(xiàn)程池只是一個(gè)管理隊列,用于處理線(xiàn)程資源的管理, 用最少的線(xiàn)程完成最大業(yè)務(wù)邏輯的處理。真正執行的線(xiàn)程函數也不完成詳細的業(yè)務(wù)處理,僅僅完成對I/O 請求的再調用,而由虛函數實(shí)現I/O 請求的再處理。
為了提高軟件的友好性, 框架采用Windows 的消息機制,與UI 進(jìn)行交互,通過(guò)窗口消息將框架的相關(guān)信息傳遞給UI 窗口。因此在框架中保留了一個(gè)指針成員, 并在需要的時(shí)候通過(guò)該指針調用消息響應函數向窗口發(fā)送消息,UI 根據消息反映框架的運行信息。
5 結語(yǔ)
根據近年來(lái)GSM/GPRS 數據通信技術(shù)等發(fā)展的趨勢,本文提出了基于GPRS 網(wǎng)絡(luò )的、使用低成本SIM300模塊的無(wú)線(xiàn)LED 屏控制器的設計方案, 該系統利用TCP/IP 協(xié)議實(shí)現了基于GPRS 網(wǎng)絡(luò )的無(wú)線(xiàn)數據的傳送。上位機將文字或圖片信息數據通過(guò)GPRS 網(wǎng)絡(luò )傳輸到遠程LED 屏終端, 也可以接收客戶(hù)端發(fā)送的數據,再根據數據的內容相應地完成各種命令,控制LED屏顯示相應的信息。該系統設計經(jīng)測試取得了良好的效果。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評論