新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于SIM300的無線LED顯示屏控制系統設計與實現

        基于SIM300的無線LED顯示屏控制系統設計與實現

        作者: 時間:2016-09-08 來源:網絡 收藏

          在自定義的STCP 通信協議中,制定了一系列管理無線 顯示屏控制器的通信指令,主要為上位機軟件的編程提供具體的通信結構和規范。通信包格式如表1所示:

        本文引用地址:http://www.104case.com/article/201609/296745.htm

          表1 通信包格式

          

         

          注:

          完整數據長度: 整型字節(4 個字節長度),整個通信包的長度;

          命令字: 根據無線 顯示屏控制器通信指令表,見表2;

          顯式控制字: 0-無;1-上移;2-下移;3-左移;4-右移;5-靜止;6-閃爍;7-刪除;

          數據內容:需要顯示信息內容;

          校驗和: 全部數據累加校驗和;

          根據無線 顯示屏控制器實際運用需要,制定了發送、刪除、顯示、連接、斷開指令等。這些指令的代碼和主要作用如表2 所示。

          表2 通信指令表

          

         

          上位機軟件通過Internet 網絡將數據發送到無線LED 顯示屏控制器后,LED 顯示屏控制器需要對收到的數據進行處理。根據指令的不同,可以控制LED 顯示屏的顯示內容及顯示模式(例如上移、下移、左移、右移、靜止、閃爍、刪除等)。

          4 軟件設計

          本系統的軟件設計包括兩部分: 上位機軟件和AVR 單片機的控制程序。上位機軟件完成與GPRS 模塊的通信, 控制LED 顯示屏上顯示的數據信息;AVR單片機的控制軟件主要完成系統初始化,GPRS 網絡連接,接收上位機發送的信息,分析接收信息內容,完成指令, 并按需將發布信息轉換為點陣信息, 送到LED顯示屏進行顯示。

          4.1 AVR 單片機的控制程序

          AVR 單片機的控制程序主要完成以下功能:連接GPRS 網絡、數據傳輸、控制LED 屏顯示。

          (1)初始化系統及 模塊,連接GPRS 網絡;(2)依照顯示屏控制器與上位機的通信協議,與上位機通信握手,接收指令,解析指令,并將顯示數據等信息存儲與處理;(3)通過串口驅動LED 屏,進行信息的顯示等。

          下面簡單介紹 模塊與上位機實現TCP/IP無線通信流程。

          AT+CGDCONT=1,“IP”,“CMNET” --注冊中國移動網絡

          OK

          AT+CGCLASS? --顯示GPRS 信息移動的類型

          +CGCLASS: “B”

          OK

          AT+CGATT? --GPRS 服務附加/分離

          +CGATT: 1

          OK

          AT+CGACT=1,1 --環境激活

          OK

          AT +CIPSTART = “TCP”,“202.196.87.7”,“2020” -- 啟動

          TCP 連接(上位機IP 地址及端口號)

          OK

          CONNECT OK --連接成功

          AT+CIPSEND --通過TCP 發送數據

          > HELLO

          SEND OK --發送成功

          4.2 上位機軟件

          本系統的上位機軟件主要采用VC 設計一個通信界面,實現與LED 遠程控制器通信。用戶界面部分采用MFC 框架基于Dialog 實現。在利用Visual C++進行通過TCP/IP 協議網絡傳輸數據開發時, 采用IOCP 框架來實現Windows Socket 的完成端口模型。

          IOCP 即I/O 完成端口(I/O Completion Port),是一個異步I/O 的API,它可以高效地將I/O 事件通知給應用程序。一個套接字在被創建后,與一個完成端口進行關聯。當一個事件發生的時候,此完成端口就將被操作系統加入一個隊列中, 然后應用程序可以對核心層進行查詢以得到此完成端口。當某項I/O 操作一旦完成, 某個可以對該操作結果進行處理的工作線程就會收到一則通知。在此應用程序中創建一定數量的工作線程來處理重疊I/O 請求的通知。

          IOCP 框架的啟動流程如圖6 所示。

          

         

          IOCP 框架的實現步驟如下:

          (1)初始化Winsock 工作環境,并創建完成端口,創建完成端口線程,建立一個監聽套接字,使套接字與完成端口關聯起來;

          (2)監聽套接字開始工作,當監聽套接字接收到客戶端TCP 的連接請求時,IOCP 會獲取并處理該消息,創建對應的Socket 對象進行接收處理,完成連接工作;

          (3)當客戶端完成TCP 連接后,可以開始數據通信,由I/O 線程來負責分發I/O 請求,通過線程池來分配邏輯處理環境;

          (4)在接收數據后,將微軟提供的一個I/O 數據結構(WSAOVERLAPPED)進行擴展,完成協議解析和數據處理。

          此外,這里的線程池只是一個管理隊列,用于處理線程資源的管理, 用最少的線程完成最大業務邏輯的處理。真正執行的線程函數也不完成詳細的業務處理,僅僅完成對I/O 請求的再調用,而由虛函數實現I/O 請求的再處理。

          為了提高軟件的友好性, 框架采用Windows 的消息機制,與UI 進行交互,通過窗口消息將框架的相關信息傳遞給UI 窗口。因此在框架中保留了一個指針成員, 并在需要的時候通過該指針調用消息響應函數向窗口發送消息,UI 根據消息反映框架的運行信息。

          5 結語

          根據近年來GSM/GPRS 數據通信技術等發展的趨勢,本文提出了基于GPRS 網絡的、使用低成本模塊的無線LED 屏控制器的設計方案, 該系統利用TCP/IP 協議實現了基于GPRS 網絡的無線數據的傳送。上位機將文字或圖片信息數據通過GPRS 網絡傳輸到遠程LED 屏終端, 也可以接收客戶端發送的數據,再根據數據的內容相應地完成各種命令,控制LED屏顯示相應的信息。該系統設計經測試取得了良好的效果。


        上一頁 1 2 下一頁

        關鍵詞: SIM300 LED

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 惠水县| 嫩江县| 栖霞市| 汝阳县| 天台县| 那坡县| 绥德县| 汾西县| 延津县| 平安县| 洛浦县| 宝坻区| 溧阳市| 石河子市| 福清市| 文山县| 上林县| 揭阳市| 宁阳县| 从化市| 呼伦贝尔市| 阳山县| 文登市| 永年县| 来宾市| 逊克县| 金沙县| 永丰县| 嘉义县| 金山区| 措美县| 高淳县| 靖安县| 汉阴县| 琼中| 长海县| 临海市| 陆川县| 略阳县| 当涂县| 湛江市|