日本在线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.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 日韩专区第一页-日韩中文字幕在线亚洲一区-日韩中文字幕在线观看视频-日韩中文字幕在线播放-日韩中文字幕一区二区不卡-日韩中文字幕一区 | 国产黄色片在线播放-国产黄色片一级-国产黄色片网站-国产黄色片免费看-青草社-青草热视频 | 国产欧美日韩精品一区二区三区-国产欧美日韩精品一区二-国产欧美日韩精品高清二区综合区-国产欧美日韩精品第三区-天天舔天天操天天干-天天添天天干 | 成人免费视频77777,精品国产福利,欧日韩一区二区三区,国产高清视频在线观看,欧美日韩1区,欧美一区二区三区在线观看 | 中文字幕在线观看网址-中文字幕在线观看网站-中文字幕在线观看国产-中文字幕在线观看-开心片色99xxxx-开心久久激情 | 成人av免费视频在线观看-成人av鲁丝片一区二区免费-成人av精品一区二区三区四区-成人aⅴ综合视频国产-成人aⅴ片-成年网站免费观看精品少妇人妻av一区二区三区 | 视频区国产亚洲.欧美-视频黄色在线-视频国产激情-十九岁日本电影免费粤语高清-久久99九九精品免费-久久99九九国产免费看小说 | 精品性影院一区二区三区内射-精品亚洲成A人20247在线观看-精品亚洲国产成AV人片传媒-精品亚洲国产成人A片在线播放-精品亚洲国产成人A片在线观看-精品亚洲国产熟女福利自在线 | 亚洲精品在线免费观看,在线日韩欧美,午夜高清在线观看免费完整版,亚洲综合久久久,久久一区二区三区免费,日韩小视频在线 | 中国一级特黄毛片-中国一级毛片在线观看-中国一级毛片特级毛片-中国一级毛片视频-客厅也啪啪厨房也啪啪女-客厅沙发与子对白在线观看 | www五月天,国产精品视频网站你懂得,精品国产你懂的在线观看,久久伊人成人,国产精品黄页网站在线播放免费,国产va在线 | 性欧美高清精品video-性欧美高清videofree-性欧美俄罗斯-性欧美xxxx乳高跟-国产真实乱偷人视频-国产真实乱了全集mp4 | youjizz日本人-youjizz亚洲-youpornyoujizz中国-yy6080久久-欧美日韩国产在线-欧美日韩国产在线播放 | 莜田优在线观看-尤物最新网址-尤物综合-尤物自拍-久久久久久网址-久久久久久网站 | 一个色综合网-一个色综合高清在线观看-一个色在线视频-一个色亚洲-一个人在线观看的www-一个人在线观看www中国 | 五月天在线观看免费视频播放,人人草人人,色视频综合,狠狠色婷婷丁香六月,五月婷婷六月丁香综合,开心激情综合网 | 黑人巨大精品欧美-黑人巨大精品欧美一区二区-黑人巨大精品欧美一区二区o-黑人巨大精品欧美一区二区免费-黑人巨大跨种族video-黑人巨大两根一起挤进A片 | 久久久无码精品亚洲日韩按摩,天天摸夜夜摸夜夜狠狠摸,久久99精品久久久久久牛牛影视,妻色成人网,色丁香六月,aa黄色片 | 国产精品亚洲精品日韩己满十八小-国产精品亚洲精品观看不卡-国产精品亚洲精品不卡-国产精品亚洲精品-四虎影视精品-四虎影视国产精品永久在线 | 欧美黑寡妇香蕉视频-欧美国产一区视频在线观看-欧美国产一区二区三区-欧美国产一区二区-国产成人精品第一区二区-国产成人精品2021欧美日韩 | 久久久久久久久久久久久久,免费福利资源站在线视频,午夜精品久久久久久影视riav,黄色的视频免费观看,国产人成免费视频,国产福利小视频 | 国产高清在线精品一区在线-国产高清在线精品一区二区三区-国产高清在线精品一区a-国产高清在线精品一区-日韩在线a视频免费播放-日韩在线2020专区 | 97视频久久久-97视频在线观看播放-97视频制服无码-97丨九色丨国产人妻熟女-97无码欧美熟妇人妻蜜-97无码欧美熟妇人妻蜜桃天美 | 五月天婷婷视频,九九爱这里只有精品,热和尚三区四区,善良的嫂子3在线播放,久久久久久久久久久久久久,热er99久久6国产精品免费 | 精品久久久久久久中文字幕,日韩欧美国产电影,日韩国产欧美一区二区三区在线,青青草原国产一区二区,日本成人久久,欧美在线视频二区 | 欧美在线日韩-欧美在线区-欧美在线看欧美视频免费网站-欧美在线精品一区二区在线观看-www..com黄-vr专区日韩精品中文字幕 | 麻豆系列国产剧在线观看-麻豆系列 在线视频-麻豆午夜视频-麻豆污视频-麻豆网站在线免费观看-麻豆网站在线看 | 欧美一级视频精品观看-欧美一级三级-欧美一级日韩一级亚洲一级va-欧美一级日韩一级亚洲一级-中文字幕精品一区-中文字幕精品视频在线观看 | 黄色在线免费播放-黄色在线免费-黄色在线看网站-黄色在线观看网站-色综合小说天天综合网-色综合小说久久综合图片 | 国产精品福利在线观看入口-国产精品福利在线观看秒播-国产精品福利在线观看免费不卡-国产精品福利一区二区亚瑟-四虎免费入口-四虎免费看片 | 青青青青青青草-青青青青青青-青青青青青国产免费手机看视频-青青青青青国产免费观看-青青青青青草原-青青青青青草 | 91精品久久久久久久久无码变态-91精品久久久久久久久中文字幕-91精品久久久久久久蜜臀-91精品久久久久久久青草-91精品久久久久久中文字幕-91精品久久久久久综合五月天 | 日本黄页网站-日本黄页网-日本黄页视频-日本黄页免费大片在线观看-国产免费网址-国产免费网站看v片元遮挡 | 国产一区二区高清-国产一区二区福利久久-国产一区二区成人-国产一区二区不卡视频-亚洲高清网站-亚洲高清视频在线观看 | 波多野在线-波多野衣结在线精品二区-波多野一区二区三区在线-波多野一区二区-波多野一区-波多野结在线 | 久久亚洲精品中文字幕-久久亚洲精品永久网站-久久亚洲精品无码A片大香大香-久久亚洲精品成人综合-在线观看视频中文字幕-在线观看视频一区 | 久久久久久久久国产-久久久久久久久97-久久久久久久国产视频-久久久久久久国产精品影院-午夜精-午夜寂寞院 | 麻豆高潮AV久久久久久久-麻豆高清免费国产一区-麻豆国产13p-麻豆国产96在线日韩麻豆-麻豆国产AV尤物网站尤物-麻豆国产精品AV色拍综合 | 中文无码熟妇人妻av在-中文无码视频三区四区在线观看-中文无码视频-中文无码肉感爆乳在线-中文无码日韩欧免费视频-中文无码日韩欧毛 | 国产日韩精品欧美一区-国产日韩高清一区二区三区-国产日韩不卡免费精品视频-国产日产欧美精品一区二区三区-午夜国产精品免费观看-午夜国产精品理论片久久影院 | 国产一级特黄aa大片在线-国产一级特黄aa大片免费-国产一级视频在线观看-国产一级视频久久-午夜影院免费体验-午夜影院免费入口 |