娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月20日(星期日)

2021年04月20日 | 基于ARM9 的嵌入式多串口服務器設計

發布者:清新風華 來源: 2關鍵字:ARM9  嵌入式  多串口服務器 手機看文章 掃描二維碼
隨時隨地手機看文章

摘要:以ARM920T 為內核的S3C2440A 作為主控制器和以太網控制芯片DM9000AEP 設計硬件平臺; 構建并移植適合嵌入式串口服務器系統的嵌入式Linux 操作系統,利用Linux 完善的TCP/IP 協議設計ARM 端的多線程網絡服務器程序。設計實現RS-232C 串口與以太網口數據的雙向傳輸,使現有的智能儀器設備成功接入以太網。


隨著計算機網絡的發展和物聯網的興起,將智能儀器接入網絡已成為一種趨勢,以實現數據的共享與遠程管理。但是目前大多智能儀器使用的是異步串行通信接口RS-232C /485 /422,因此迫切需要一種能將異步串行通信協議轉換為以太網TCP /IP 協議的協議轉換器,使現有的串行通信設備方便地接入以太網,而不需要改變原有儀器設備的硬件。為此,筆者研究設計了基于ARM9微處理器和Linux 操作系統的嵌入式多串口服務器。


1 系統總體思路


采用以ARM920T 為內核的S3C2440A 微處理器運行Linux 操作系統,使用100MBase-T 網絡在串行設備與遠端主機之間有效地進行傳輸數據,這樣通過串口服務器使串行設備快速接入以太網,利用以太網的TCP /IP 協議進行串口數據包的傳輸。嵌入式串口服務器作為以太網數據與串口數據之間交互的中間橋梁,負責數據的雙向透明傳送。服務器端的主要任務是在ARM 處理器中實現RS-232C /485 /422 轉TCP /IP 協議網關,完成對各端口的監聽和數據的雙向傳輸,當端口有數據產生或客戶端有數據請求時啟動獨立線程,保證實時而又不丟失地進行數據傳輸。基于上述要求系統必須具備: 一套對網絡支持良好的嵌入式操作系統,并且可根據專用的硬件平臺進行裁剪; 微處理器的運行速度與處理數據的能力優秀,外圍芯片接口友好。


筆者選用Linux 作為實時操作系統,并進行移植與配置使其可以運行在以ARM9 為核心的硬件平臺上。S3C2440A 自帶三路串行通信口,完全能夠滿足多串口服務器的設計要求,但考慮到網絡數據傳輸與串口數據傳輸速率不匹配,需要在硬件板卡上擴展SDRAM 和NORFLASH,另外系統還需擴展以太網控制器芯片。系統的總體設計框架如圖1 所示。

2 硬件電路


系統可同時獨立地與兩路串行端口通信,當數據由以太網傳送給串口服務器時完成數據的存儲與數據格式的轉換與處理,為數據傳向指定的串行口做準備。當系統解包處理完成后,根據TCP /IP 協議的數據幀的幀頭信息就能獲得該數據包的發送目標串口,這樣就完成了從以太網到串行口數據的傳輸; 當數據由串口設備傳送到串口服務器時完成數據的分析、處理與格式轉換,為數據傳向以太網口做準備,當數據打包結束后將其從以太網口發送出去,這樣就完成了串行口到以太網數據的傳輸。




2.1 S3C2440A 擴展以太網模塊電路


DM9000AEP 是一款高集成度且成本較低的單片快速以太網媒體介質訪問層MAC 控制器,上有通用處理器接口,10M/100M 物理層和16KbyteSRAM,低功耗、高性能IO 管腳兼容3. 3 /5. 0V 電壓。DM9000AEP 合成了以太網MAC、物理層PHY 和MMU,內置AUTOMDI2X 功能10 /100MPHY,芯片可以根據處理器提供8 /16 /32bit 3 種連接方式實現以太網MAC 層和PHY 層) 的功能。


在如圖2 所示的電路中, IOR#管腳接處理器的LnOE 讀信號端, IOW#接處理器的LnWE 寫信號端,CS#片選信號端接處理器的nGCS4 片選信號,SD0 ~ SD15 分別接處理器的數據總線,中斷信號INT 接處理器的EINT18 管腳,RX +、RX -、TX + 和TX – 分別是兩對差分收發信號線接帶有隔離變壓器的HR911105A 的RJ45 座連接,如圖3 所示。訪問網卡以總線形式實現,網卡的IO 基址為300H,片選信號接在了NGCS4 上,所以網卡IO 的基址為0x20000300H.由“DM9000 地址端口= 高位片選地址+ 300H + 0; DM9000 數據端口= 高位片選地址+ 300H + 4”可知,DM9000 端口的端口地址為0×20000300,DM9000 數據的端口地址為0×20000304.S3C2440 通過數據端口與地址端口并結合讀/寫信號線就可以對DM9000 進行讀、寫操作了。圖2 中只用了一根地址線LADDR2,這是由DM9000AEP 的特性決定的,DM9000AEP 的地址信號和數據信號復用,使用CMD 引腳來區分它們( CMD 為低時數據總線上傳輸的是地址信號,CMD 為高電平時傳輸的是數據信號) .訪問DM9000AEP 內部寄存器時,需要將CMD 置為低電平,發出地址信號; 然后將CMD置為高電平,讀/寫數據。另外,總數位寬16 位,兩對差分接收與發送信號線,特別要注意的是:


在PCB 布線時這兩對線必須走差分線,否則接收和發送數據將不穩定,模擬地與數字地也要處理好。


圖2 網卡接口電路

2.2 S3C2440 串口模塊電路


S3C2440 本身自帶三路獨立的UART 接口,在設計嵌入式串口服務器系統時,應用了S3C2440 串口模塊的兩路UART 接口,另外一路UART 接口做開發時的打印控制臺用。這兩路串行口用三線通信,采用MAX3232 作為電平轉換芯片,分別配置處理器的GPH2、CPH3、CPH4 和CPG5,4 個GPIO 口為TXD0、RXD0、TXD1 和RXD1 串口收發信號線。RS-232C 接口電路如圖4 所示。

3 系統軟件


系統軟件的設計目標: 嵌入式串口服務器能夠接收來自以太網的數據流,將以太網數據流轉換為串行口數據流發送給指定串口; 實現串口數據流到以太網數據流的逆過程。軟件平臺采用擁有完備TCP /IP 協議棧和豐富源碼資源的Linux作為串口服務器的操作系統,在ARM9 上移植并裁剪Linux 系統,同時移植完善根文件系統,為應用層軟件開發提供平臺。應用程序軟件的主要任務如圖5 所示,通過Linux 系統調用接口、調用串口函數讀取數據,并將數據通過socket 接口發往以太網口; 接收socket 端數據、調用串口設備函數,將數據發往指定串口。

3.1 在Linux 系統中對串口的操作


UART 的操作主要有: 數據發送、數據接收、產生中斷、設置波特率、loopback 模式、紅外模式和硬/軟流控模式7 部分。在Linux 中,所有設備文件一般都位于“/dev”下,其中串口對應的設備為“/dev /ttySx”,在Linux 下對設備的操作方法與對文件的操作方法一樣。下面就是設計中串口應用的開發步驟。


串口設置主要設置struct termios 結構體成員,具體的串口操作函數此處略去,串口操作流程如圖6 所示。

3.2 Linux 網絡套接字編程步驟


在Linux 中的網絡編程通過socket 接口進行。socket 是一種特殊的IO 接口,也是一種文件描述符,它是一種常用的進程之間的通信機制,通過它不僅能實現本地機器上進程間的通信,而且通過網絡能夠在不同機器上的進程間進行通信。


嵌入式串口服務器系統網絡套接字編程步驟如圖7 所示。

系統上電后,嵌入式服務器進入Linux 系統并自動運行裝載在其內的server 程序。作為服務器, server 程序在開始運行時就為每一個打開的串口創建recvpcwritearm 和readarmsendpc 線程,并在網絡連接正常以及客戶端沒有執行關閉串口的操作時,每一個已打開串口對應的兩個線程將不會結束,這樣在系統滿負荷運行時,系統將同時開啟4 個線程。嵌入式串口服務器主程序流程如圖8 所示,主函數實現套接字的初始化工作,建立兩路監聽套接字,分別初始化線程recvpcwritearmsocket[3000 + com]套接字和readarmsendpc socket[4000 + com]套接字com 為串行端口號。一旦接收到客戶端的連接請求,判斷客戶端請求的方式后,啟用相應的進程函數進行數據處理。

4 試驗


4.1 數據上行測試


數據上行測試指串口設備發送信息到嵌入式串口服務器,通過嵌入式串口服務器將數據從以太網口傳輸出去。考慮實際使用過程中上行數據量較大,為了模擬工業現場接收大量的數據,以“1234567890abcdefghijklmnopqrstuvwsyz”構成的數據包進行模擬。


測試方法為每秒鐘連續不斷地發送“1234567890abcdefghijklmnopqrstuvwsyz”,使之構成100KByte 的數據包,觀察客戶端程序能否正常收到這個數據包。試驗測試結果如圖9 所示,當從“終端串口設備”向上位機發送100KByte 數據時,在客戶端一側正常收到了這些數據,并且沒有丟失現象。

4.2 數據下行測試


數據下行測試指通過工控機上的以太網口發送數據給串口服務器,串口服務器接收以太網數據幀并進行格式轉換,同時判斷發往指定的串口設備。在實際使用過程中,上位機發送到串行終端設備的數據量較小,這些數據一般都是由操作人員輸入的數據,因此可以用單個數據流“1234567890abcDefghijklmnopqrstuvwxyz”進行測試。


測試方法是利用運行在PC 機上的客戶端程序每秒鐘發送連續數據流,觀察另一臺PC 機上串口調試助手是否正常接收到數據。試驗測試結果如圖10 所示,當客戶端程序發送數據時,在終端串口設備上得到同樣的數據流。

5 結束語


筆者利用完全開源的Linux 操作系統,將其移植、裁剪后設計嵌入式串口服務器系統,選用非常適用于通信產品中的ARM9 內核的S3C2440A 微處理器和DM9000AEP 芯片擴展了100MByte 自適應以太網口,完成了硬件平臺設計; 然后用多線程網絡套接字編寫串口服務器程序,完成多串口服務器的軟件設計。最后用試驗證實了多串口服務器能夠很好地完成串口數據與以太網口數據的雙向傳輸,成功地將現有的串行通信設備接入以太網,利用網絡實現數據的遠程傳輸與遠程監控功能,實時監控設備的運行狀態。降低了設備的維修費用,縮短了開發周期。該產品基于開放標準設計,易于升級與維護,具有廣闊的應用前景。


關鍵字:ARM9  嵌入式  多串口服務器 引用地址:基于ARM9 的嵌入式多串口服務器設計

上一篇:基于ARM9和Linux的液晶驅動終端設計
下一篇:ARM匯編語言中的符號

推薦閱讀

  化學家有了新的實驗助手——人工智能(AI)。隨著深度學習算法的進一步應用,AI計算機程序能幫助藥物化合物等小有機分子產生所需的反應序列,制定合成路徑。下面就隨網絡通信小編一起來了解一下相關內容吧。  《自然》雜志近日發表了這種新型工具,化學家們將這一進展視為一個大跨越,其可以加速藥物研發過程,推動有機化學更迅速發展。  未參與這項...
  “AIoT并不是簡單的連接,而是通過一個設備給家庭的主人一個更便利的生活方式”,長虹多媒體產品策劃部部長李海清在接受包括PingWest品玩在內的媒體訪談時表示。  “電視等AIoT設備也不是簡單的機器,而是家庭伙伴,我們希望的是一種無形的融入。”他隨即補充道。  2018年是中國彩電市場競爭最激烈的一年,也是長虹全面發力AI領域的關鍵一年。長虹...
電力載波作為電力系統特有的通信方式,廣泛應用在遠程抄表領域。但是由于電力載波擁有可靠性差,通訊不穩定的缺點,使得設備的升級成功率比較低。本期的小課堂,艾拉比將系統介紹下我們提供的FOTA差分升級是如何幫助電力廠商解決升級效率低、升級時間長、成功率低等一系列問題,以期與行業合作伙伴共享。 概述 PLC介紹 電力載波通訊即PLC,是英文Power li...
集微網消息,半導體芯科技雜志消息顯示,近日,電子薄膜與集成器件國家重點實驗室(電子科技大學)正式發布了全球首款CMOS單片集成之全硅微顯示芯片。該實驗室的硅光研發小組依托“中國電科—電子科大”共建的核心電子材料與器件協同創新中心開展校企合作,成功研發了全球首款“基于硅材料自身發光”的全硅微顯示芯片樣品。據悉,該項工作的“原創理念”是...

史海拾趣

問答坊 | AI 解惑

分布式蓄電池智能節點設計

摘    要:本文論述了基于CAN總線的蓄電池智能監控系統的實現,包括智能監控模塊的軟硬件結構,獨立CAN控制器SJA1000的應用,數字式單總線溫度檢測單元,給出了串接電池電壓檢測的一種可行方案。關鍵詞:單片機;CAN總線;SJA1000; ...…

查看全部問答∨

大家好

DSP24+28…

查看全部問答∨

如何能夠有效地保護中小型企業數據安全

無論何時,數據都可謂企業運轉的血液。而在這個網絡時代,數據保護更是成為大大小小企業們的不可避免的重要話題。但中小企業所面臨的問題與大型企業相比,其復雜性也不可小視。可以說,其數據管理的復雜性與大型企業不相上下,而其支持力量卻很有限 ...…

查看全部問答∨

CH365的Windows驅動程序和動態庫

CH365的Windows驅動程序和動態庫…

查看全部問答∨

μCOS-II 在51單片機

μCOS-II是個不錯的操作系統,體積小,可裝在8位,16位,32位CPU上…

查看全部問答∨

公交車字符串移動顯示

   公交車上那個長字符串移動,并且隨時切換,且都是點陣做起來的。不知用的是什么處理器?    然后,移動怎么個原理? 感覺自己實現起來很難。…

查看全部問答∨

EVC中是不是不支持settimer的SLIDER_TIMER參數??

EVC中是不是不支持settimer的SLIDER_TIMER參數??         mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 報錯是:error C2065: \'SLIDER_TIMER\' : undeclared identifier…

查看全部問答∨

mobile c++有人做過電話功能嗎?如何拒絕來電?

mobile c++有人做過電話功能嗎?如何拒絕來電?…

查看全部問答∨

努力了幾天,STM32終于快要輸出SVPWM了

晚上回家測試波形是否正確, 軟仿好向沒問題了!整個算法一次耗時,4.125us,在10KHz的PWM時占用CPU資源4.125%,硬件是可能更長一點兒,晚上在報告.執行的算法:   模擬的角度發生器,   電壓變化自補嘗 &nbs ...…

查看全部問答∨
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宝应县| 宁都县| 昭平县| 凤台县| 正镶白旗| 滁州市| 福泉市| 新绛县| 南木林县| 余干县| 利川市| 静宁县| 阜阳市| 华安县| 鲁甸县| 勐海县| 怀宁县| 女性| 津市市| 江川县| 阳曲县| 潍坊市| 广宁县| 绥德县| 嘉善县| 桐城市| 南乐县| 云安县| 毕节市| 深水埗区| 伊金霍洛旗| 思茅市| 潜江市| 赫章县| 清远市| 深水埗区| 开江县| 梁河县| 湘乡市| 高州市| 新余市|