• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > 無線手持磁條卡信息終端設計

    無線手持磁條卡信息終端設計

    作者: 時間:2011-04-21 來源:網絡 收藏

    3.2.3 sys_arch.c
    主要實現與操作系統封裝層相關的一些函數,包括郵箱操作函數、信號量操作函數等等,主要實現以下幾個函數:
    (1)LwIP系統的初始化函數。LwIP提供了系統初始化函數void sys_init(void),用來給用戶初始化一些必要的數據結構。在本系統當中,sys_init()函數主要使用μC/OS-Ⅱ的內存管理函數,分配LwIP郵箱所需的內存和初始化LwIP的定時事件表。
    (2)LwIP信號量操作函數。由于μC/OS-Ⅱ中已經實現了信號量的各種操作,只需使用μC/OS-Ⅱ中的信號量處理函數對LwIP的信號量操作函數重新進行封裝就可以了。
    (3)LwIP郵箱操作函數。LwIP中的郵箱對應μC/OS-Ⅱ中的消息隊列。根據sys_arch.h文件里面定義的郵箱數據結構,使用μC/OS-Ⅱ的消息隊列函數封裝成以下幾個函數就可以實現LwIP的郵箱操作:
    e.JPG
    (4)LwIP的sys_arch_timeouts函數。在LwIP當中,每一個線程都有一個定時器鏈表來保存相關的定時,移植時要做的事情是為每一個定時器鏈表提供一個用來保存鏈表表頭指針的結構變量sys_timeouts,并通過sys_arch_timeouts函數返回每個線程對應的sys_timeouts變量,并且保證在出錯時也能返回一個可用的sys_timeouts變量。相關的數據結構和函數定義如下:
    f.JPG
    (5)LwIP線程的創建函數。LwIP需要實現線程的創建函數,但是由于μC/OS-Ⅱ中沒有線程的概念,只有任務,所以LwIP中線程創建可以通過調用μC/OS-Ⅱ中的任務創建函數實現。
    (6)LwIP獲取系統時間函數。當LwIP使用PPP作為數據鏈路層協議時,必須通過sys_jifties()函數獲得以ms為單位的系統時間。因此要使用LwIP的PPP協議時,一定要實現這個函數;沒有使用PPP協議時,無需理會。由于在μC/OS-Ⅱ,無論時鐘節拍何時發生,μC/OS-Ⅱ都會對一個32位的計數器加1。可以通過調用μC/OS-Ⅱ的系統函數OSTimeGet()來獲得該計數器的當前值,再根據系統的時鐘節拍頻率就可以實現sys_jifties()函數。
    3.2.4 修改配置文件lwipopt.h
    LwIP提供了配置文件lwipopt.h,可以通過定義一系列宏來剪裁LwIP功能,適應不同的應用需要。例如可以設置是否支持PPP協議,是否支持ICMP協議,是否支持自動獲取IP等等。由于本應用系統使用GPRS上網,所以設置支持PPP協議。
    3.3 GPRSModem驅動
    Modem驅動完成MC39i的初始化、發送和接收PPP協議幀數據。
    3.3.1 AT命令
    驅動Modem是基于A T命令集實現的,微控斜器通過串行接口將AT命令發送給MC39i,從而完成對MC39i的控制。主要AT命令如下:
    (1)設置錯誤返回。使用at+cmee=1命令,執行錯誤時,錯誤報告的格式均為ERROR。
    (2)設置接入網關。使用at+cgdcont=1,“IP”,“CMNET”命令設置GPRS接入網關為移動夢網。
    (3)激活GPRS功能。使用AT+CGACT=1,使GPRS模塊附著到網絡。如果命令返回O K,則GPRS連接成功;如果返回ERROR,則意味著GPRS連接
    失敗。
    (4)撥號。ATD * 99 * * * 1#。撥號成功后,微控制器通過串口傳送PPP協議幀,與Modem進行數據通信。
    3.3.2 LwIP與Modem接口函數
    Modem使用串行接口與微控制器進行通信。而LwIP提供了幾個標準的串行設備接口函數,在LwIP中的創建sio.c文件實現GPRS無線Modem驅動。該文件中主要實現下面幾個函數:
    g.JPG

    4 結語
    本文的無線系統實現了輕量級TCP/IP協議棧LwIP在μC/OS-Ⅱ上的移植,并利用運營商的GPRS網絡實現了與后臺服務器的無線互聯,其具有成本低,體積小和功耗低等優點,可應用于多種應用場合。

    本文引用地址:http://www.czjhyjcfj.com/article/156375.htm

    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 永平县| 平定县| 巴马| 常熟市| 山丹县| 张掖市| 绥化市| 元氏县| 保康县| 南阳市| 泊头市| 小金县| 蓬溪县| 青冈县| 通河县| 高邮市| 大安市| 冀州市| 沧州市| 荥阳市| 泰州市| 武威市| 淳安县| 沧源| 绥中县| 新宾| 大化| 湖口县| 东山县| 东至县| 安泽县| 商洛市| 大新县| 浠水县| 忻州市| 苍山县| 炎陵县| 长寿区| 富源县| 息烽县| 新邵县|