www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于ARM7的串口服務器的實現(xiàn)

摘 要:文中提出了一種低成本、高性能的嵌入式串口服務器的硬軟件設計方案。該服務器以ARM7芯片LPC2210為核心控制器, 采用RTL8019以太網(wǎng)控制器處理網(wǎng)絡數(shù)據(jù), TL16C554異步通信組件處理串口數(shù)據(jù)。對輕便TCP/ IP協(xié)議棧LW IP在μC/OS - Ⅱ實時操作系統(tǒng)中進行了移植, 并對16路串行通道設計了實時多任務方案, 使串口服務器能夠以TCP/UDP模式在網(wǎng)口和串口端進行雙向232 /485通信。實驗證明本服務器能使傳輸數(shù)據(jù)實時, 準確。

  通過擴展多串口, 可以在PC端遠程監(jiān)控、管理各種外設, 或對外設進行系統(tǒng)升級。通常串口服務器采用ARM9 微處理器和帶TCP / IP協(xié)議棧的付費操作系統(tǒng), 而文中提出的串口服務器是通過移植LW IP協(xié)議棧到代碼開源的μC /OS - Ⅱ中實現(xiàn), 這樣不但降低成本, 而且代碼的編寫更加透明、靈活。

  1 硬件系統(tǒng)的設計

  本串口服務器采用Philip s的ARM7 系列芯片LPC2210,網(wǎng)絡控制芯片采用RTL8019, 串口采用TL16C554芯片擴展。為得到更廣泛的應用, 串口端還擴展485 接口, 通過跳線選擇232 /485 方式。系統(tǒng)結構框圖, 如圖1所示。

  

 

  圖1 系統(tǒng)結構框圖

  2 軟件系統(tǒng)的實現(xiàn)

  串口服務器軟件系統(tǒng)包括兩部分: TCP / IP協(xié)議棧的移植和實時多任務應用程序。μC /OS - Ⅱ在LPC系列ARM中的移植采用周立功公司的方案。

  2.1 TCP / IP協(xié)議棧的移植

  LW IP是瑞士人Adma Dumkels等開發(fā)的源代碼開放的精簡TCP / IP 協(xié)議棧。目的是在于保證TCP協(xié)議完整的情況下減少系統(tǒng)資源的需求, 適合于資源較少的嵌入式系統(tǒng)應用。移植LW IP協(xié)議棧主要有兩部分代碼: (1)編寫操作系統(tǒng)模擬層相關代碼; (2) LW IP接口初始設置及網(wǎng)卡驅動。

  2.1.1 操作系統(tǒng)模擬層相關代碼

  操作系統(tǒng)模擬層存在的目的主要是在μC /OS - Ⅱ和LW IP之間提供一座橋梁, 使LW IP能與μC /OS - Ⅱ能以相同的規(guī)范存在于一個系統(tǒng)中并能相互通信。LW IP有信號量和郵箱兩種進程通訊方式, 而μC /OS - Ⅱ也提供這兩種進程通訊方式。

  信號量用來同步任務, 操作函數(shù)有sys_new_sem (建立并返回一個新信號量) , sys_ sem _ signal(指定要發(fā)送的信號量) , sys_sem_free (指定要釋放的信號量) , sys_arch_sem_wait (等待由參數(shù)sem指定的信號量并阻塞線程) , 在這些函數(shù)體中進行數(shù)據(jù)結構的初始化并加入μC /OS - Ⅱ中的相關函數(shù)便可完成。

  郵箱用來投遞消息, LW IP允許將郵箱實現(xiàn)為一個隊列,多條消息投遞到這個郵箱。

  μC /OS - Ⅱ提供了豐富的消息隊列函數(shù), 且μC /OS - Ⅱ和LW IP投遞到郵箱中的消息均用指針實現(xiàn)。該系統(tǒng)建立了多個郵箱, 郵箱通過單向鏈表接在一起。接收消息的最大數(shù)量由消息數(shù)組決定, 結構圖如圖2所示。

  

 

  圖2 郵箱數(shù)據(jù)結構圖

  郵箱建好后用指針P_Mbox指向節(jié)點1, 申請新郵箱將節(jié)點1和節(jié)點2斷開, P_Mbox指向節(jié)點1的p stNext, 以此類推。回收時P_Mbox的移動方向與申請時相反, 這樣不會浪費內存且比較穩(wěn)定。由以上結構和μC /OS - Ⅱ提供的函數(shù)寫出郵箱相關函數(shù)。

  除此之外, 還需要編寫任務創(chuàng)建函數(shù)sys_thread_new和sys_arch_timeouts函數(shù), 由于每個任務都有timeouts鏈表, sys_arch _timeouts函數(shù)返回的sys_timeouts結構保存了timeouts鏈表的首地址。

  2.1.2 LW IP初始化設置及底層驅動

  LW IP的初始化設置包含在LW IP通信進程的入口函數(shù)中, 其入口函數(shù)LwipEntry的基本結構如下:

  Void LwipEntry ( void 3 pvArg)

  {

  / /初始化LW IP, 涉及LW IP使用的內存區(qū),PCB ( TCP /UDP)以及OS模擬層各個方面

  __ilvInitLwip ( ) ;

  / /設置LW IP, 包括添加配置網(wǎng)絡接口, 建立接受任務等工作

  __ilvSetLwip ( ) ;

  / /在這里建立LW IP 的應用, 服務器支持TCP /UDP方式, 兩種方式都建立

  }

  底層驅動在服務器每次收發(fā)數(shù)據(jù)中都要調用,這部分代碼需要有良好的健壯性和穩(wěn)定性。整個實現(xiàn)順序, 如圖3所示。

  

 

  圖3 底層程序框架圖[!--empirenews.page--]發(fā)送主線首先是以太網(wǎng)初始化函數(shù)( 1)開始,調用鏈路層發(fā)送函數(shù)(2)并增加各層協(xié)議頭, 再調用RTL8019發(fā)送函數(shù)(9)發(fā)送數(shù)據(jù)。

 

  接收主線除初始化以太網(wǎng)外, 需調用鏈路層初始化函數(shù)(3) , ( 3)中調用( 4)初始化RTL8019。

  收到的數(shù)據(jù)先經過函數(shù)(8) , 然后通過信號量傳送到函數(shù)(6) , 由( 6)調用( 7)得到數(shù)據(jù)個數(shù), 最后由(5)根據(jù)以太網(wǎng)幀頭攜帶的上層協(xié)議類型判斷是交給IP協(xié)議還是ARP協(xié)議處理。

  移植完畢, 進行數(shù)據(jù)收發(fā)實驗驗證。使用TCP傳輸協(xié)議, 由網(wǎng)口虛擬串口軟件VSPM通過串口調試工具收發(fā)數(shù)據(jù), 圖4是以10 ms的發(fā)送速度在自發(fā)自收程序中收發(fā)數(shù)據(jù)的截圖。

  

 

  圖4 TCP協(xié)議數(shù)據(jù)傳輸界面

  由于COM1和COM2被PC機占用, 故由網(wǎng)口虛擬出來的串口是COM3, 由圖4可看出在面向連接的TCP協(xié)議下, 高速收發(fā)數(shù)據(jù)不會丟包。

  2.2 實時多任務方案的設計

  16個串口分別與網(wǎng)絡端口組成16 個雙向通道。為使代碼靈活、透明, 程序不使用LW IP提供的SOCKET AP I。應用程序把每個雙向通道分為發(fā)送, 接收, 串口3個任務, 加上LW IP本身需占用一個任務, 共需建立49個任務。μC /OS - Ⅱ最多能建立64 個任務, 其中8 個操作系統(tǒng)本身占用,剩56個能滿足要求。由VSPM軟件把網(wǎng)口模擬成16個串口, 串口服務器偵聽的16 個端口分別是1 000~1 015, 如圖5所示。

  

 

  圖5 網(wǎng)口虛擬擴展16個串口界面

  網(wǎng)絡端和串口端的數(shù)據(jù)接收會觸發(fā)相應的中斷。每個雙向通道的3個任務各司其職, 網(wǎng)口端接收數(shù)據(jù)中斷后在傳輸層協(xié)議判斷信源的端口號,交給相應的接收任務, 處理完后交給串口任務把數(shù)據(jù)從相應串口發(fā)送; 串口接收數(shù)據(jù)后在中斷程序中判斷信源的通道號, 把數(shù)據(jù)交給串口任務,處理完后由發(fā)送任務通過網(wǎng)口把數(shù)據(jù)發(fā)送出去。

  服務器支持TCP /UDP兩種傳輸協(xié)議, 下面給出一個通道的TCP傳輸流程圖, UDP部分代碼只需在相應任務中調用LW IP給的UDP函數(shù)。TCP模式下串口服務器工作在Server模式, PC機工作在Client模式, 流程圖, 如圖6所示。

  

 

  圖6串口服務器單通道程序流程圖

  3.結論

  文中本服務器是以性能不及ARM9且不能使用L inux的ARM7為主控芯片, 但兩種開源代碼μC /OS - Ⅱ實時操作系統(tǒng)和LW IP協(xié)議棧的有效結合避免了高額的軟件費用, 而且能滿足通信要求。實驗證明, 基于LW IP和μC /OS - Ⅱ的串口服務器不僅能實現(xiàn)雙向通信,而且傳輸數(shù)據(jù)實時、準確, 符合工業(yè)應用的要求。

  

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉