摘要:給出了采用LPC2364" title="LPC2364">LPC2364芯片為處理器,并利用以太網中TCP協議來設計串口轉網" title="串口轉網">串口轉網口模塊,從而實現數據傳輸方式轉換的一種設計方法。該方法中的軟件采用FreerRtos實時多任務嵌入式系統和uIP協議棧來實現串口數據通訊和網口數據通訊兩項任務。文中同時給出了系統框圖和主程序流程圖。
關鍵詞:TCP/IP協議;LPC2364;uIP;FreeRTOS" title="FreeRTOS">FreeRTOS;串口轉網口
O 引言
串口轉網口模塊是一個可以讓串口設備立即具備聯網能力的設備聯網服務器。它具有1個可選擇界面串口和1個TCP/IP網絡接口,可讓串口設備立即連接網絡。從而實現工業設備完全自動化聯網管理。該模塊體積小,非常容易整合在系統或設備內,而且可以適應復雜的網絡。為此,本文給出了采用LPC2364、DP83848C、SP3485和H2019等芯片構成一個串口轉網口模塊的軟硬件實現方法。
1 uIP介紹
uIP是由瑞典計算機科學學院(網絡嵌入式系統小組)的Adam Dunkels開發的一種軟件協議棧。該協議棧的源代碼由C語言編寫,并完全公開。uIP協議棧去掉了完整的TCP/IP中不常用的功能,簡化了通訊流程,但保留了網絡通信必須使用的協議。它把設計重點放在了IP/TCP /ICMP/UDP/ARP這些網絡層和傳輸層協議上,故可保證其代碼的通用性和結構的穩定性。
由于uIP協議棧是專門為嵌入式系統而設計的。因此,uIP還具有如下優越功能:
◇代碼非常少,其協議棧代碼不到6K,很方便閱讀和移植。
◇占用的內存數非常少,RAM占用僅幾百字節。
◇其硬件處理層、協議棧層和應用層共用一個全局緩存區,且不存在數據的拷貝,發送和接收都是依靠這個緩存區,故可極大地節省空間和時間。
◇支持多個主動連接和被動連接并發。
◇源代碼中提供的實例程序包括web服務器、web客戶端、電子郵件發送程序(SMTP客戶端)、Telnet服務器、DNS主機名解析程序等。而且通用性強,移植后基本不用修改就可以通過。
◇對數據的處理采用輪循機制,不需要操作系統的支持。
由于uIP對資源的需求較少且移植很容易,因此,大部分具有小RAM的微控制器都可以使用uIP協議棧。
2 FreeRTOS介紹
FreeRTOS是一款可移植且源代碼開放的微型實時內核。可為多種不同的處理器架構和開發工具提供移植包。每個官方移植包都包含一個配置好的應用范例,可用來展示內核特性,加快學習進程。
FreeRTOS是一種專為小型嵌入式系統設計的,可擴展的實時內核。其亮點在于其設計遵循小型、簡單、易用的原則,同時可支持任務(tasks)和協程(co-routines)以及隊列、二進制信號量、計數信號量、遞歸信號量和互斥量等,可用于任務之間、任務和中斷之間的通信和同步。
3 串口轉網口模塊的硬件實現
串口轉網口模塊使用到的芯片有LPC2364、DP83848C、SP3485和H2019,其系統的硬件電路圖如圖1所示。
4 串口轉網口模塊的軟件實現
本串口轉網口模塊的軟件需要建立兩個任務,一是初始化,二是任務調度。其中初始化包括時鐘初始化,協議棧初始化,IP地址初始化,網關地址初始化,子網掩碼初始化,網口初始化。串口初始化等。其主函數代碼如下:
圖2所示是其主函數流程圖。主函數中可進行uIP協議棧初始化和串口初始化的并使并設置,同時通過操作系統初始化來建立兩個通訊任務,然后就可以開始操作系統的任務調度。圖3所示是系統中的串口任務控制流程。
5 協議轉換卡的通訊試驗
本文的協議轉換卡并不是通用意義上的協議轉換卡,而是基于特定串口通訊協議的轉換卡。該卡在規定的協議中,由網口接收到的數據可以分為兩種,一種是控制命令,一種是查詢命令。在軟件中,串口任務和網口任務有兩個共享的數據緩沖區,通過串口任務可檢查緩沖區,如果緩沖區中有數據,則根據通訊協議判斷這些數據是否是正確的指令,若是正確的指令,則判斷是查詢命令還是控制命令,若是控制命令,則將此控制命令發送出去,并清空緩沖區;若是查詢命令,網口任務則會到另一個緩沖區中取出數據,并用協議棧將此數據發送出去,同時清空緩沖區。通過用TCP通訊客戶端檢測工具和串口調試助手調試可以發現,如果TCP通訊客戶端發出的是查詢命令,則網口任務自動到預定的緩沖區取出數據,并發送出來,同時在TCP通訊客戶端上顯示出來;如果TCP通訊客戶端發出的是控制命令,則等待串口調試助手的返回數據。如果有返回,則在TCP通訊客戶端上顯示出來;如果串口助手沒有返回,軟件控制則一直發送控制命令,直到收到正確的回復。
6 結束語
本文所設計串口轉網口的轉換卡是具有串口通訊協議的轉換卡。協議卡對收到的數據會進行分析和判斷,進而決定數據的發送方式,從而實現FreeRTOS操作系統和uIP協議棧的結合。此外,由于FreeRTOS操作系統和uIP協議棧對用戶而言是透明的,因此,該模塊可以方便地隨時修改串口通訊速率、串口通訊格式、IP地址、網關、子網掩碼等功能.并充分利用FreeRTOS操作系統的穩定性與可靠性以及實時性好等特點,同時可發揮以太網通訊效率高的特點,來為實施數據轉換提供方便。