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

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

案例頻道

基于嵌入式系統的多通訊方式的研究與實現
  • 企業:     領域:機器視覺    
  • 點擊數:2209     發布時間: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.詳細的需求:
姓名:
單位:
電話:
郵件:
久久国产精品自由自在| 欧美一区二区三区性| 色综合久久天天综合绕观看| 一级毛片视频免费| 色综合久久天天综线观看| 天天做人人爱夜夜爽2020毛片| 国产麻豆精品高清在线播放| 国产麻豆精品hdvideoss| 日韩专区在线播放| 一级片片| 香蕉视频三级| 99久久精品国产片| 亚洲精品中文字幕久久久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品视频免费观看| 国产成人精品一区二区视频| 黄视频网站在线看| 日本伦理黄色大片在线观看网站| 国产精品123| 欧美a免费| 欧美国产日韩在线| 久久精品欧美一区二区| 欧美另类videosbestsex视频| 黄视频网站免费观看| 亚欧成人毛片一区二区三区四区| 成人在免费观看视频国产| 久草免费在线视频| 美女被草网站| 欧美激情一区二区三区在线| 精品国产一区二区三区免费| 久久久成人网| 久久久成人网| 一级毛片视频播放| 可以在线看黄的网站| 二级片在线观看| 欧美一区二区三区在线观看| 欧美激情伊人| 日日夜人人澡人人澡人人看免| 91麻豆精品国产片在线观看| 成人免费网站视频ww| 亚欧成人乱码一区二区| 久久国产精品自线拍免费| 精品久久久久久中文字幕2017| 午夜家庭影院| 久久福利影视| 欧美激情一区二区三区视频 | 成人在激情在线视频| 日日夜夜婷婷| 日韩在线观看视频网站| 国产激情一区二区三区| 韩国毛片免费| 日本在线www| 可以免费看污视频的网站| 精品视频一区二区三区免费| 成人a大片在线观看| 韩国毛片免费| 国产麻豆精品hdvideoss| 国产高清视频免费| 国产美女在线观看| 国产伦精品一区二区三区在线观看| 999久久久免费精品国产牛牛| 精品视频在线看| 亚洲精品中文字幕久久久久久| 成人免费网站久久久| 亚洲天堂在线播放| 欧美激情一区二区三区视频 | 麻豆系列国产剧在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 麻豆网站在线看| 精品国产亚洲人成在线| 999精品在线| 99热精品一区| 欧美激情一区二区三区在线| 欧美一级视| 久久国产影视免费精品| 亚洲天堂在线播放| 九九精品在线播放| 青青青草影院 | 国产91素人搭讪系列天堂| 久久国产一久久高清| 麻豆午夜视频| 精品国产三级a∨在线观看| 欧美激情中文字幕一区二区| 沈樵在线观看福利| a级毛片免费全部播放| 日韩在线观看免费| 青青久久精品| 国产一区精品| 国产麻豆精品视频| 日本免费区| 免费毛片播放| a级黄色毛片免费播放视频| 亚久久伊人精品青青草原2020| 日韩男人天堂| 精品国产香蕉在线播出 | 国产美女在线观看| 国产激情视频在线观看| 色综合久久手机在线| 精品国产香蕉在线播出 | 色综合久久天天综合绕观看| 可以免费在线看黄的网站| 久久精品欧美一区二区| 日韩专区亚洲综合久久| 国产精品12| 国产伦理精品| 国产网站免费在线观看| 午夜激情视频在线观看| 久久99爰这里有精品国产| 国产原创视频在线| 免费毛片播放| 91麻豆tv| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产伦久视频免费观看 视频 | 精品国产一区二区三区免费| a级黄色毛片免费播放视频| 国产国产人免费视频成69堂| 亚州视频一区二区| 午夜欧美福利| 久久国产精品只做精品| 韩国三级视频网站| 精品视频在线观看视频免费视频| 沈樵在线观看福利| 精品视频在线看 | 久久99爰这里有精品国产| 久久久久久久男人的天堂| 国产激情视频在线观看| 久草免费在线视频| 天天做日日爱夜夜爽| 国产不卡在线观看| 亚欧乱色一区二区三区| 国产原创视频在线| 99久久精品国产片| 欧美国产日韩一区二区三区| 一本伊大人香蕉高清在线观看| 亚州视频一区二区| 成人影院一区二区三区| 国产综合成人观看在线| 精品久久久久久免费影院| 二级特黄绝大片免费视频大片| 精品视频在线观看一区二区 | 在线观看导航| 午夜久久网| 国产美女在线观看| 九九精品影院| 日韩在线观看视频免费| 91麻豆国产福利精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 香蕉视频久久| 四虎影视久久久免费| 尤物视频网站在线观看| 欧美激情一区二区三区视频高清| 深夜做爰性大片中文| 欧美大片aaaa一级毛片| 999久久66久6只有精品| 亚洲女人国产香蕉久久精品| 99色吧| 久久精品免视看国产明星| 色综合久久天天综合| 日本伦理黄色大片在线观看网站| 精品国产一区二区三区国产馆| 免费毛片播放| 欧美激情一区二区三区在线| 久久精品大片| 午夜在线观看视频免费 成人| 毛片的网站| 99久久精品国产高清一区二区 | 精品国产一区二区三区国产馆| 国产原创视频在线| 美女免费精品高清毛片在线视| 99久久精品国产高清一区二区 | 久久国产影视免费精品| 日韩免费在线观看视频| 国产一区二区精品尤物| 精品国产一区二区三区免费| 你懂的福利视频| 麻豆网站在线免费观看| 日本乱中文字幕系列| 成人a级高清视频在线观看| 日韩中文字幕一区二区不卡| 精品国产一区二区三区久久久狼| 九九国产| 日日夜人人澡人人澡人人看免| 成人免费一级纶理片| 成人在激情在线视频| 国产一区二区精品久久| 久久国产影院| 日日夜夜婷婷| 日本特黄特黄aaaaa大片| 尤物视频网站在线| 日韩字幕在线| 一级女性全黄生活片免费| 国产91丝袜在线播放0| 美女免费精品视频在线观看| 精品久久久久久影院免费| 色综合久久天天综合绕观看| 久久久久久久网| 四虎久久精品国产| 日韩一级黄色| 91麻豆精品国产综合久久久| 一a一级片|