日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于嵌入式系統的多通訊方式的研究與實現
  • 企業:     領域:機器視覺    
  • 點擊數:2020     發布時間:2005-03-25 16:32:00
  • 分享到:
介紹了在嵌入式µCLinux系統中將網絡通訊和串行端口通訊在一個通訊模塊中實現的一種方法。

 

1  引言

    計算機與外部設備進行通訊可以采用不同的接口實現,常用的是串行接口、網絡適配器和并行接口。其中串行通訊技術已經很成熟,具有便利和低成本的特點。隨著計算機網絡的不斷發展,網絡作為獲取信息的便捷手段,已經逐漸被人們所共識。帶有串口接入和網絡接入功能的嵌入式設備可以實現任何人在任何地方任何時間方便地獲取其運行數據,監控其運行狀況。嵌入式操作系統是嵌入式設備軟件的核心部分,由于它的存在,使得嵌入式設備的功能具有很大的擴展空間和伸縮性能。

    μCLinux是針對控制領域的嵌入式Linux操作系統,它沿襲了主流Linux的絕大部分特性,適合不具備內存管理單元MMU(Memory Management Unit)的微處理器/微控制器,支持多任務,具有完備的傳輸通訊控制協議/網際協議(TCP/IP協議)和點對點協議PPP(Point to Point Protocol),并支持多種網絡協議和文件系統。μCLinux以其優異的性能、免費開放的代碼等優點,博得眾多嵌入式開發者的青睞,在低端網絡設備、工業控制領域、數據采集和傳輸等方面有著越來越廣泛的應用。利用這種成熟、高效、可靠、模塊化、易于配置的操作系統來開發應用程序,無疑能進一步提高效率,并具有很好的可移植性。

    為此,利用TCP套接字方式、PPPd撥號方式以及高速串口通訊方式在嵌入式μCLinux系統間以及嵌入式μCLinux系統和Windows系統組成的通訊系統中,實現網絡數據通訊方案,充分利用μCLinux系統對多種通訊協議的支持優勢,實現多種通訊模式的自由選擇和通訊方式的轉換,完成傳遞數據信息、實時采集數據等功能。

2  通訊模塊的總體設計
2.1  通訊模塊的功能要求

    近年來,隨著光纖技術的不斷發展和完善,以太網已經成為人們進行數據傳輸和信息交流的重要手段,然而傳統的串口通訊方式由于其低廉的硬件成本和簡單便利的連接方式在數據傳輸中仍然占有重要位置。本嵌入式系統的硬件設計充分考慮了上述兩種通訊方式的優越性和提供設備的使用范圍的要求,提供了兩種通訊方式的硬件接口;通訊程序的設計充分考慮了對硬件資源的支持,并保證軟件具有良好的可靠性和維護方便性。

    整個系統的開發和運行過程中用到的通訊方式有Socket網絡通訊方式和COM口串行通訊方式兩類。其中串行通訊方式又可分為計算機與嵌入式設備直接通過串口連接的通訊方式和通過Modem撥號連接的通訊方式兩種。因此軟件要實現對上述三種通訊方式的支持,并保證通訊方式選擇的簡便性。

2.2  總體方案實現


圖1  通訊模塊工作流程

    考慮到該模塊的功能要求,在通訊模塊的設計中將這三種通訊方式集成到一個通訊系統中,通過一個控制類實現對通訊方式的控制。采用配置文件的方式將通訊方式和通訊參數寫入到該配置文件,這樣在選擇通訊方式時只需要在配置文件中修改相應的參數就可以實現,滿足系統對不同通訊方式轉換的簡單操作要求。通訊模塊的總體設計流程如圖1所示。

    嵌入式系統啟動后,軟件的運行會調用讀配置文件程序對系統的各種配置參數進行檢查。對于通訊模塊,主要配置項目是設備的連接類型和對應的基本參數,程序讀到正確配置后記錄下這些參數,進入通訊控制類程序判斷設備的連接類型并調用相應的連接程序。根據參數信息設置該連接所需要的配置,等待與外部設備的通訊。

3  Socket通訊程序設計
3.1  基本原理

    數據在以太網上的傳輸和接收都必須遵循以太網絡的通訊協議,在一系列以太網絡通訊協議中,核心協議是傳輸層的TCP/IP協議。TCP協議是面向連接的,通訊雙方保持一條通道,為了保證網絡傳輸的正確性和有效性,必須進行一系列復雜的糾錯和排序等處理[1]。網絡通訊中,基于TCP/IP協議的通訊方式有很多,根據應用需要,選用最常用的套接字Socket實現服務器端和客戶端(C/S)的數據通訊。

    μCLinux系統是嵌入式Linux的一個分支,帶有完整的TCP/IP協議,支持Socket規范。在實際應用中,把μCLinux系統的嵌入式裝置作為服務器端,外部與它連接的裝置作為客戶端。μCLinux系統中的服務器端應用程序,主要是用來接收客戶端的連接請求,接收和處理客戶端的信息,向客戶端發送計算結果和應答信息等。在開發μCLinux系統下的Socket程序時,采用面向連接的TCP-Socket,它提供了一種可靠的面向連接的數據傳輸方法,有自己的檢錯和糾錯機制,并且不管是對單個數據報,還是對于數據包,它提供了一種流式數據傳輸方式。

3.2  程序設計與實現[2]
    在μCLinux系統中用GNU C實現TCP套接字編程,關鍵是利用μCLinux系統的μClibc函數庫,服務器端程序就使用其通用接口函數(socket(), listen(), accept()等)完成[3]。服務器程序流程如圖2所示。


圖2  服務器端程序工作流程

    (1)  服務器程序的第一個操作是創建一個套接字,這是通過調用函數socket()實現的。Sockfd=socket(AF_INET, SOCK_STREAM, 0);
    (2)  調用bind()函數綁定服務器的地址和套接字,bind(sockfd, (struct sockaddr*)& seraddr, sizeof (struct sockaddr));
    (3)  服務器需要將當前與IP地址和端口號完成綁定的套接字轉換成偵聽套接字,調用listen()函數偵聽連接,listen(int sockfd, int backlog),其中sockfd是綁定后的文件描述符,backlog設置請求排隊的最大長度;
    (4)  服務器程序進入一個無條件循環,監聽來自客戶端的連接請求,在此過程中如果有客戶機請求連接,服務器程序就會調用accept()從偵聽套接字的連接隊列中接受一個連接請求,new_fd=accept(sockfd, (struct sockaddr*) &their_addr, &sin_size));
    (5)  服務器程序接收請求后,由vfork()創建子進程,子進程通過由accept()建立的套接字描述符和客戶機通訊,符程序繼續監聽來自客戶端的請求。需要注意的是μCLinux系統的API函數與標志的Linux基本相同,但其μClibc函數庫中多進程管理通過vfork()函數實現,而不是通常的fork()函數[4]。

4  串口通訊程序設計
4.1  基本原理
    串行口是計算機一種常用的接口,具有連接線少,通訊簡單,得到廣泛的使用。常用的串口是 RS-232-C 接口(又稱 EIA RS-232-C),它是在 1970 年由美國電子工業協會(EIA)聯合貝爾系統、 調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。

    串行通信協議分為同步協議和異步協議。異步協議的特點是一個字符一個字符傳輸,并且傳送一個字符總是以起始位開始,以停止位結束,字符之間沒有固定的時間間隔要求。每一個字符的前面都有一位起始位,字符本身有5~7位數據位組成,接著字符后面是一位校驗位(也可以沒有校驗位),最后是一位或一位半或二位停止位,停止位后面是不定長度的空閑位。同步協議分為面向字符的同步協議和面向比特的同步協議。面向字符的同步協議一次傳送由若干個字符組成的數據塊,并規定了10個字符作為這個數據塊的開頭與結束標志以及整個傳輸過程的控制信息,它們也叫做通信控制字;面向比特的同步協議特點是所傳輸的一幀數據可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字符來標志幀的開始和結束。

4.2  程序設計與實現
    μCLinux對串口協議提供了完整的支持,由于Linux系統在處理任何設備時都把設備看作一個文件,因此對于串口設備,Linux系統也把對串口的操作看作對文件I/O的操作,調用系統庫函數open(), read(), write()等實現串口的創建和對串口數據的讀寫等操作[5]。程序流程如圖3所示。


圖3  串口程序工作流程

    (1)  串口程序的第一個操作是創建一個串口文件,(Linux系統對串口設備有自己的定義方式,/dev/ttyS0為Windows中的COM0,/dev/ttyS1為Windows中的COM1,以此類推。)調用函數open()實現,comfd=open("/dev/ttyS0", O_RDWD);
    (2)  接下來就是設置串口參數,包括波特率、數據位、流控制、開始位和停止位等,這些參數是保證串口能否正確通訊的條件;
    (3)  正確設置了通訊參數后,就可以讀取該串口中的數據,數據的讀取是調用read()函數實現的,readlen=read(comfd, char *buff, int bufflen);
    (4)  如果系統需要向外界發送數據,要調用write()函數實現,writelen=write(comfd, char *buff, int bufflen)。

5  遠程串口通訊的設計和實現

    本系統要求實現在不具備以太網線路的條件下,通過電話線和Modem撥號方式實現該嵌入式設備與外部設備的連接通訊方式。Linux系統提供了PPP協議來實現Modem的撥出和撥入功能。PPP協議提供了一種通過串行點對點聯接傳輸數據報的方式。它由一種在串行封裝數據報的方式,擴展聯接控制協議LCP和用來建立及配置不同網絡層協議的家族網絡控制協議NCP三部份組成。封裝方案由內核驅動代碼來提供,pppd(ppp daemon)提供基本的LCP認證支持,建立和配置IP的網絡控制協議NCP。一個PPP會話分為四個步驟:連接建立、連接質量控制、網絡層協議配置、連接終止;提供了密碼認證協議(PAP)或者邀請握手認證協議(CHAP)來保證連接安全[6]。

    在嵌入式系統中,只要安裝有pppd工具,配置該嵌入式系統作為PPP服務器端,就可以方便實現Modem的撥入及與外部設備的通訊。本部分程序的功能相對簡單,主要實現打開本地串口設置串口的通訊參數(與串口通訊的設置方法相同),初始化與串口連接的Modem,然后等待外部的撥入轉給pppd程序處理。

6  結語

    工程應用中,嵌入式設備能否對多種通訊方式提供支持,是衡量該設備是否具有廣泛使用性的關鍵指標之一。不僅提供網絡接口,還提供了傳統的串行接口的嵌入式設備,本文提供了將多種通訊方式的通訊程序集成到一個通訊模塊中的一種方法,不僅可以實現系統對多重通訊方式的支持要求,同時實現了通訊方式選擇的簡便性和通訊參數配置的簡單性。

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 成人综合网久久-成人综合网亚洲伊人-成人综合网站-成人综合网站一区二区三区四区-成人综合网站在线-成人综合网址 | 手机看片福利永久国产日韩-手机看片369-手机精品在线-手机国产乱子伦精品视频-国产精品嫩草影院在线观看免费-国产精品嫩草影院在线播放 | 欧美精欧美乱码一二三四区,怡红院五月天,国色天香社区在线看免费,水蜜桃视频在线高清观看,日韩欧美在线免费观看,水蜜桃在线视频 国产夜色福利院在线观看免费-国产夜趣福利免费视频-国产野花视频天堂视频免费-国产亚洲综合一区二区在线-日韩精品在线观看免费-日韩精品在线电影 | 7788理论片在线观看-7788av-777午夜精品免费播放-777奇米影视一区二区三区-蜜桃传媒在线-蜜桃成熟时1997在线看免费看 | 国产亚洲精品a在线观看app-国产亚洲精品A久久777777-国产亚洲精品AV片在线观看播放-国产亚洲精品AV麻豆狂野-亚洲 欧美 国产在线视频-亚洲 欧美 国产 综合五月天 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 | 国产美女小视频-国产美女网站视频-国产美女网站-国产美女特级嫩嫩嫩bbb-天天干视频在线观看-天天干视频在线 | 自拍偷拍另类-自拍偷拍国内-自拍偷拍国产-自拍偷拍第6页-自拍偷拍第4页-自拍偷拍第3页 | 伊人精品国产,久久久国产精品视频,国产1页,国产精品亚洲综合一区,国产成人高清亚洲一区91,久久久一区二区三区不卡 | 日本a天堂,亚洲精品乱码久久久久久,欧美精品一区二区三区在线播放,国产亚洲视频在线观看,国产丰满眼镜女在线观看,亚洲日韩欧美综合 | 一区二区视频在线观看高清视频在线-一区二区三区无码高清视频-一区二区三区无码被窝影院-一区二区三区四区国产-久久re视频精品538在线-久久re热在线视频精99 | 色综合天天综合网国产国产人-色综合天天综合网国产成人网-色综合天天综合网国产成人-色综合天天综合给合国产-国产成人精彩在线视频50-国产成人禁片在线观看 | 亚洲 日韩 色 图网站-亚洲 图片 另类 综合 小说-亚洲 无码 欧美 经典-亚洲 校园 春色 另类 图片-亚洲 校园 欧美 国产 另类-亚洲 在线 成 人色色 | 一级毛片在线看-一级毛片在线播放免费-一级毛片一级毛片免费毛片-一级毛片一级毛片-九九51精品国产免费看-九号影院 | 四虎永久免费影院在线-四虎永久免费影院-四虎永久免费网站免费观看-四虎永久免费观看-国产精品麻豆综合在线-国产精品麻豆一区二区三区 | 国产偷抇久久精品A片蜜臀A-国产偷抇久久精品A片蜜臀AV-国产偷抇久久精品A片图片-国产偷窥熟妇高潮呻吟-国产凸凹视频熟女A片-国产玩弄放荡人妇系列 | 日本漫画母亲口工子全彩-日本漫画大全无翼乌-日本妈妈在线观看中文字幕-日本妈妈xxxx-操他射他影院-操老太太的逼 | 五月天激情婷婷,欧美午夜在线,日一下影院,免费一区二区三区四区,99热99re8国产在线播放,婷婷开心激情网 | 黄色在线免费播放-黄色在线免费-黄色在线看网站-黄色在线观看网站-色综合小说天天综合网-色综合小说久久综合图片 | 婷婷五色,五月天激情婷婷大综合,亚洲综合久久久久久中文字幕,国产ww久久久久久久久久,婷婷综合缴情亚洲五月伊,欧美日韩不卡在线 九九香蕉-九九线精品视频-九九五月天-九九天天影视-天天干b-天天干2018 | 四色草视频-四散的尘埃在线观看-四库国产精品成人-四虎最新网址入口-国产精品一区二区三区四区五区-国产精品一区二区三区四区 | 久久综合影视-久久综合伊人77777麻豆-久久综合一区二区三区-久久综合一-亚欧三级-亚欧美综合 | 青青青青青青草-青青青青青青-青青青青青国产免费手机看视频-青青青青青国产免费观看-青青青青青草原-青青青青青草 | 日韩精品无码一区AAA片-日韩精品三级-日韩草逼-日韩操穴-成人黄色在线观看-成人黄色在线播放 | 麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a | 国产夜色福利院在线观看免费-国产夜趣福利免费视频-国产野花视频天堂视频免费-国产亚洲综合一区二区在线-日韩精品在线观看免费-日韩精品在线电影 | 激情www,国产成人爱情动作片在线观看,五月天婷婷在线观看高清,欧美美女福利视频,五月激激激综合网色播免费,国产亚洲欧美日韩综合另类 | 美女操网站-美女操操操-美女操操-美女被日动态图-美女被猛男躁免费视频网站-美女被漫画 | 日本最新中文字幕-日本最新在线-日本最新伦中文字幕-日本综合在线-国产 日韩 欧美 高清-国产 欧美日韩 在线播放 | 国产首页-国产手机精品自拍视频-国产视频综合-国产视频自拍一区-香蕉网在线播放-香蕉网在线 | 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 国产韩国精品一区二区三区久久-国产国语一级毛片在线视频-国产国语高清在线视频二区-国产国拍亚洲精品午夜不卡17-日韩在线欧美高清一区-日韩在线免费视频观看 | 久久99国产精品一区二区,欧美日韩另类在线,婷婷四月开心色房播播网,收集最新中文国产中文字幕,亚洲综合激情六月婷婷在线观看,欧美一级淫片 | 五月天婷婷缴情五月免费观看,久久综合热,高清中国一级毛片免费,国产一级高清免费观看,普通话对白国产精品一级毛片,日韩在线不卡视频 | 国产欧美精品一区二区三区四区-国产欧美精品一区二区三区-国产欧美精品一区二区-国产欧美精品系列在线播放-天天爽天天-天天视频一区二区三区 | 日皮影院,一区二区三区高清不卡,国产日韩欧美中文字幕,日韩亚洲欧美一区二区三区,国产三级91,国产精品hd免费观看 | 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 又大又粗好舒服好爽视频-又大又白g奶-又粗又长又爽又大硬又黄-又粗又长又黄又爽视频-久久久久中文-久久久久这里只有精品 | 欧美成人国产一区二区-欧美成人黄色-欧美成人黄色片-欧美成人家庭影院-欧美成人精精品一区二区三区-欧美成人精品a8198v无码 | 亚洲国产精品自产在线播放-亚洲国产精品专区-亚洲国产精品一区二区首页-亚洲国产精品一区二区三区在线观看-精品无码久久久久久国产-精品无码久久久久国产 | 极品美女在线观看国产一区-极品嫩模一区二区三区-极品人妻被黑人中出-极品少妇xxxxⅹ另类-极品少妇xxxx精品少妇-极品少妇XXXX精品少妇偷拍 | 国产三级在线观看视频-国产三级在线免费-国产三级在线免费观看-国产三级自拍亚洲性爱在线-国产三级做爰在线播放-国产三級三級三級A片视频 |