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

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

案例頻道

基于嵌入式系統的多通訊方式的研究與實現
  • 企業:     領域:機器視覺    
  • 點擊數:2019     發布時間: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.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 久久久久久99精品-久久久久久99-久久久久久91香蕉国产-久久久久久91精品色婷婷-中国一级片免费看-中国一级毛片国产高清 | 91精品久久久久久久久无码变态-91精品久久久久久久久中文字幕-91精品久久久久久久蜜臀-91精品久久久久久久青草-91精品久久久久久中文字幕-91精品久久久久久综合五月天 | 国产日韩精品欧美一区-国产日韩高清一区二区三区-国产日韩不卡免费精品视频-国产日产欧美精品一区二区三区-午夜国产精品免费观看-午夜国产精品理论片久久影院 | 在线免费观看国产精品,日韩经典在线,香蕉久久网,爽妇网s,国内在线观看精品免费视频,欧美另类图片亚洲偷 | 久久夜视频-久久夜色视频-久久夜色精品国产欧美-久久夜色精品国产噜噜小说-久久夜色精品国产-久久亚洲这里只有精品18 | 国产a一级-国产a网-国产a视频精品免费观看-国产a视频-国产a免费观看-国产a毛片 | 日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看 | 久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 中文字幕第一页亚洲-中文字幕第一页国产-中文字幕第38页永久乱码-中文字幕不卡在线观看-久久久久青草大香线综合精品-久久久久青草 | 欧美人与性动交a欧美精品-欧美人与物另类-欧美人与牲动交a欧美精品-欧美人与禽片免播放-国产福利在线观看永久免费-国产福利在线播放 | 六月丁香七月婷婷,欧美老女人逼,久久亚洲国产高清,国产一级在线观看视频,日产wv二区三区四区,瑟瑟网站在线观看 | 波多野结衣中文字幕教师-波多野结衣中文字幕2022免费-波多野结衣中文在线观看-波多野结衣中文在线播放-波多野结衣中文一区-波多野结衣中文丝袜字幕 | av资源每日更新网站在线-av资源免费每日更新-av资源在线-av资源在线播放-av资源在线播放韩国-av资源在线观 | 视频区国产亚洲.欧美-视频黄色在线-视频国产激情-十九岁日本电影免费粤语高清-久久99九九精品免费-久久99九九国产免费看小说 | 精品无码免费黄色网站-精品无码免费一区二区三区-精品无码免费在线播放-精品无码免费专区-精品无码免费专区午夜-精品无码欧美黑人又粗又 | 欧美日韩亚洲一区二区三区在线观看-欧美日韩亚洲第一区在线-欧美日韩亚洲成人-欧美日韩午夜群交多人轮换-bbwvideos欧美老妇-bbwvideoa欧美老妇 | 欧美中出,国产欧美又粗又猛又爽老,日本啊v,欧美日韩欧美,国产va在线观看,国产一区二区三区在线视频 | 麻豆系列国产剧在线观看-麻豆系列 在线视频-麻豆午夜视频-麻豆污视频-麻豆网站在线免费观看-麻豆网站在线看 | 开心色99xxxx开心色-开心色99-开心久久婷婷综合中文字幕-开心 色 欧美 图-中文字幕人乱码中文-中文字幕人妻丰满熟女 | 国产内射大片-国产男人午夜视频在线观看-国产免费一级片-国产免费一级精品视频-国产免费网站看v片元遮挡-国产免费久久爱久久啪 | 精品国产在线亚洲欧美-精品国产在线手机在线-精品国产在线国语视频-精品国产在线观看福利-亚洲色噜噜狠狠站欲八-亚洲色噜噜狠狠网站 | 日本特黄一级-日本特黄特色aa大片免费-日本特黄特色aaa大片免费-日本特黄特黄aaaaa大片-二级特黄绝大片免费视频大片-二级片在线观看 | 久久99精品久久久久久噜噜噜-久久99精品久久久久久噜噜丰满-久久99精品久久久久久噜噜-久久99精品久久久久久久野外-午夜精品人妻无码一区二区三区-午夜精品免费 欧美日韩在线成人免费-欧美日韩在线成人看片a-欧美日韩在线不卡-欧美日韩在线播放-自拍偷拍三级-自拍偷拍欧美亚洲 | 岛国精品在线观看-岛国精品在线-岛国大片在线免费观看-岛国大片在线观看完整版-日本老师xxxx88免费视频-日本久久综合网 | 美女三级毛片-美女牲交视频一级毛片无遮挡-美女视频大全视频a免费九-美女视频黄a视频全免费网站色窝-美女视频黄的全是免费-美女视频秀色福利视频 | 视频免费观看网址-视频免费观看视频-视频免费观看入口大全-视频免费1区二区三区-国产成人尤物精品一区-国产成人悠悠影院 | 欧美综合亚洲,欧美激情91,亚洲 欧美 成人日韩,国产亚洲精品成人婷婷久久小说,国内精品久久久久影院不卡,曰韩在线 | 天美传媒影视mv-天美传媒视频原创在线观看-天美传媒免费-天美传媒麻豆自制剧-国产精品线在线精品国语-国产精品线在线精品 | 精品国产91乱码一区二区三区,成人国产一区二区三区精品,亚洲一区免费在线观看,日韩在线一区二区三区免费视频,波多野吉衣在线观看,日韩一级精品久久久久 | 欧美日韩 国产区 在线观看-欧美日操-欧美日本综合一区二区三区-欧美日本中文字幕-欧美日本中文-欧美日本在线一区二区三区 | 国产视频xxxx-国产视频www-国产视频a区-国产视频99-香港一级纯黄大片-香港一级a毛片在线播放 | 亚洲综合在线观看视频-亚洲综合在线观看一区-亚洲综合在线观看一区www-亚洲综合在线视频-亚洲综合在线网-亚洲综合在线一区 | 97视频久久久-97视频在线观看播放-97视频制服无码-97丨九色丨国产人妻熟女-97无码欧美熟妇人妻蜜-97无码欧美熟妇人妻蜜桃天美 | 五月婷婷激情在线,国产一及毛片,青青热久久国产久精品,激情网站免费,欧美精品三区,97国产影院 | 亚洲国产欧美精品-亚洲国产欧美国产综合一区-亚洲国产欧美国产第一区-亚洲国产模特在线播放-好吊色青青青国产在线播放-好吊色青青草 | 91香蕉视频在线播放-91香蕉视频在线看-91香蕉小视频-91香蕉亚洲精品人人影视-91香蕉影院-91香蕉在线视频 | 波多野结衣在线中文-波多野结衣在线影视免费观看-波多野结衣在线影视-波多野结衣在线一区二区-波多野结衣在线一区-波多野结衣在线网址 | 色综合天天综合网国产国产人-色综合天天综合网国产成人网-色综合天天综合网国产成人-色综合天天综合给合国产-国产成人精彩在线视频50-国产成人禁片在线观看 | 日b视频免费看-日b视频免费-人禽性bbb视频-人禽无码做爰在线观看-人妻中文字幕无码-人妻一区日韩二区国产欧美的无码 | 丝袜情趣在线资源二区-丝袜啪啪-丝袜秘书ol连裤袜在线播放-丝袜美女被出水一区-国产国产人在线成免费视频69-国产国产人免费视频成69堂 | 美日韩在线观看-美日韩在线-美女网站色在线观看-美女网站色免费-亚洲综合偷自成人网第页-亚洲综合天堂网 |