新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > EM200在分布式探測站組網通信的應用

        EM200在分布式探測站組網通信的應用

        作者: 時間:2012-02-10 來源:網絡 收藏

        3.2 解決途徑
        鑒于站發送的數據量和發送周期的不確定性,設計時必須考慮滿負荷的工作狀態,即連接站的串口0一直處于接收峰值的狀態。為確保無丟失地接收站數據,串口0中斷優先級必須高于串口1。在此前提下,問題可歸結為當串口1中斷被暫時屏蔽得不到及時響應時,如何完整接收超過串口1緩存容量的AT指令應答響應,解決途徑是擴大串口1的FIFO緩存。
        由于TCP發送指令返回的應答響應在18~21 B之間,所以串口1的接收緩存必須大于等于21 B,需另選大容量緩存的專用串口芯片來替代LPC2214串口1。這里采用具備64 B FIFO緩存的并轉串芯片TL16C752B。值得注意的是雖然TL16C752B符合8080并行總線接口要求,但其寫操作時序與相當部分的MCU不匹配,而絕大多數MCU沒有調整此部分時序的功能,其中就包括此處選用的LPC2214。這就需要外加一片用作時序匹配的CPLD,此處選用了EPM240,該部分電路示意圖如圖7所示。

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

        e.jpg


        MCU以中斷方式經串口0接收探測站的數據,并將其按AT指令TCP發送命令格式傳至模塊。在完成當前TCP數據包發送處理后,將執行后的結果通過串口1返回給MCU,若MCU正忙于接收來自探測站的數據,則AT指令執行結果被壓入TL16C752B接收緩存,并通過中斷提示MCU此時串口1接收到數據,一旦MCU從串口0接收中斷釋放就立即轉去處理串口1接收中斷,足夠大的緩存保證了響應結果能被完整接收。

        4 軟件設計
        4.1 轉發平臺的軟件設計
        由于EM200僅支持TCP協議中的客戶端模式,而各個TCP客戶端之間是不能直接的。因此在收發系統中必須引入中間轉發平臺作為TCP服務器端,通過TCP服務器對收到的客戶端數據進行轉發處理從而間接實現在客戶端間的數據交換。TCP服務器端的軟件編寫較為容易,由于該軟件最終運行在公網的PC上,可以在VB環境下利用WinSock組件來實現。TCP服務器開啟兩組監聽端口分別監聽來自接收端和發送端的鏈接請求,當建立起與發送端和接收端的TCP鏈接后,將發送端鏈接收到的數據從接收端鏈接發送出去,如此完成轉發操作。
        4.2 收發終端軟件設計
        針對無源探測網絡較高的實時性要求,若仍采用無限循環的前/后臺軟件架構是不合適的,而引入實時操作系統(RTOS)一方面可以提高整體的響應時間,另一方面可以將復雜的分解成多個相對獨立子功能模塊,降低了軟件編寫復雜程度。此處選擇μC/OS-Ⅱ,其較少的硬件資源開銷很適合ARM7這類MCU。
        4.2.1 發送端軟件設計
        發送端可以拆分成三個進程,每個進程都是一個無限循環,依靠μC/OS-Ⅱ內核的調度機制,MCU在三個進程之間切換執行,實現發送端對探測站數據的接收和CDMA發送操作。
        進程1的優先級最高,其任務是讀取串口0收到的數據并將其壓入在RAM中開辟的緩沖區。串口0的讀取操作是由中斷服務程序ISR配合RTOS中的信號量實現的。具體過程是在進程1中調用RTOS的OSSemPend函數阻塞當前進程,當串口0收到數據并觸發中斷后,在中斷服務程序ISR中讀出的串口0緩存數據,并調用RTOS的OSSemPost函數釋放相應的信號量,則原先被阻塞的進程繼續執行,此時將ISR中讀出的數據壓入RAM中開辟的緩沖區,完成一次循環,如圖8所示。

        h.jpg


        進程2負責從串口1接收來自EM200模塊的AT指令應答結果,由于預先得知TCP發送指令執行后的應答響應不會超過串口1的64 B FIFO緩存容量,因此實時接收的要求不如串口0嚴格,所以進程2優先級可低于進程1。進程2的架構與進程1基本相同,惟一區別是將讀出的應答響應存到指定的AT指令暫存緩沖區,如圖9所示。

        i.jpg



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 仁寿县| 汽车| 彰化县| 滕州市| 淮滨县| 南城县| 洱源县| 广水市| 彰化县| 宿迁市| 蓬莱市| 林州市| 广元市| 叙永县| 邻水| 新泰市| 自治县| 桃园县| 科尔| 贡嘎县| 渭源县| 华坪县| 广州市| 仁化县| 涿州市| 八宿县| 孝感市| 马边| 遂溪县| 峨山| 湛江市| 武山县| 湖北省| 平山县| 新泰市| 邵阳市| 绿春县| 军事| 通榆县| 云霄县| 商丘市|