《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于嵌入式Linux的無紙記錄儀通信設計
基于嵌入式Linux的無紙記錄儀通信設計
EDN
摘要: 本文將使用嵌入式Linux作為無紙記錄儀上位機操作系統,并利用其多線程編程技術實現上位機與下位機的串口通信。
Abstract:
Key words :

引言

  在工業自動化控制系統中,記錄儀起著十分重要的作用,它可以實時采集、監測和記錄一些影響工藝過程和產品質量的重要參數,被廣泛應用于石化、冶金、電力、機械、醫藥、輕工業等行業。隨著電子技術的不斷發展,記錄儀已從傳統的有紙模擬式發展到如今的無紙數字式[1]。與傳統的有紙記錄儀相比,無紙記錄儀無機械磨損、顯示直觀、使用方便、故障率低和設備耗材少,因此被越來越多的應用于工業控制領域。

  隨著工業過程自動化的高速發展,企業對無紙記錄儀提出了越來越高的要求,基于8位單片機的無紙記錄儀的功能已遠遠達不到用戶的要求。嵌入式ARM微處理核的32位RISC處理器以其強大的性能豐富的接口以及優異的性價比等諸多優勢,而被越來越多的應用于無紙記錄儀,隨著硬件的改進,傳統的串行通訊方法也迫切需要改進,因此本文提出了基于嵌入式Linux串口通信方案。嵌入式Linux操作系統是在標準Linux的基礎上針對嵌入式系統進行內核裁剪和優化后形成[2],它繼承了Linux的開放源代碼、多任務、穩定性高,內核可裁剪等諸多優點,其內核精簡而高效,具有非常好的網絡性能。本文將使用嵌入式Linux作為無紙記錄儀上位機操作系統,并利用其多線程編程技術實現上位機與下位機的串口通信。

  1 記錄儀中的通信協議

  由于無紙記錄儀主要在過程控制現場或監控室中使用,與之進行通信的現場設備接口以串口居多,因此在該裝置的開發過程中采用十分通用的MODBUS協議作為串口通信協議。?MODBUS協議是MODICON公司于1979年為建立智能設備間的主從式通信而開發的一種通信協議,它規定在一個系統中,每次命令應由系統中主設備發起,從設備通過解析地址位決定是否應答[3]。該協議具有兩種報文傳送幀格式,ASCII和RTU報文幀格式,分別如圖1和圖2所示。

ASCII報文幀格式

圖1  ASCII報文幀格式

RTU報文幀格式

圖2  RTU報文幀格式

  將兩種報文傳送幀格式異同總結如表1。由表1可知,兩種報文幀格式各有優劣:ASCII格式使用的字符是RTU格式的兩倍,但ASCII格式數據的譯碼和處理更為容易一些;使用RTU報文幀格式傳輸數據時,報文字符必須以連續數據流的形式傳送,而使用ASCII格式,字符之間允許長達1s的時間間隔。

表1 ASCII與RTU報文幀格式比較

ASCII與RTU報文幀格式比較

  通常情況下,在一個MODBUS網絡中只采用一種報文幀格式進行數據交換。但在一些特殊情況下,同一系統中需要用到不同傳輸模式的控制器,即同時采用兩種報文幀傳輸格式。為了使無紙記錄儀具有更強的通用性,本文提出了一種新的可同時使用兩種報文幀格式的串口通信方案。在以下闡述過程中, 以ASCII和RTU報文幀格式傳輸的數據將分別簡稱為ASCII和RTU數據。

  2 記錄儀的通信實現

  2.1 整體設計

  無紙記錄儀主要通信對象為工業現場設備,因此通信過程中數據交換應快速、準確無誤。在MODBUS協議中,ASCII與RTU數據打包與解碼均不相同,數據讀寫方面需要獨立起來。串口通信功能框架如圖3所示。

串口通信功能框架圖

圖3 串口通信功能框架圖

  設備注冊掃描模塊主要負責設備地址表的維護,每間隔一定時間掃描在線設備,并記錄下設備地址和使用的報文幀格式,同時根據掃描得到信息動態開辟ASCII和RTU數據緩存區。ASCII數據讀寫模塊負責打包和解碼ASCII數據,RTU數據讀寫模塊負責打包和解碼RTU數據。數據發送模塊根據優先級排列好打包好的數據依次發送。數據接收模塊僅解碼下位機儀表每次傳回數據的首位,判斷是RTU數據還是ASCII數據,存入RTU或ASCII數據緩存區,以待處理。

  為了實現ASCII與RTU數據的共存,首要問題是每次設備掃描注冊時對使用ASCII和使用RTU數據的設備加以區分。由ASCII和RTU的報文幀格式可知,傳輸數據首位是判斷數據類型的關鍵,所以使用RTU報文幀格式的設備地址需避開ASCII數據的起始位和結束符。在未知在線設備情況下,上位機將所有設備地址輪詢一遍,解析接收數據首位,如果是ASCII的起始位,則ASCII設備注冊,反之,則RTU設備注冊。

  2.2 編程實現

  軟件實現上,采用Linux的多線程編程技術,可以更好的滿足工業現場的實時性要求。多線程程序采用多任務、并發的工作方式[4],可以提高應用程序響應時間并且改善程序結構。Linux操作系統中提供了Linuxthread 庫[5],它實現了符合POSIX1003.1c標準的多線程支持,而且是內核級方式。

  串口通信通過三個線程來實現,主線程、發送子線程和接收數據處理子線程,如圖4所示。同時,為了使收發數據管理更加方便,建立了四個數據緩存區:⑴ 發送緩存區,存放準備發送的命令; ⑵ 已發送緩存區,存放已發送好但未經接收確認的命令;⑶ RTU接收緩存區,存放接收到的RTU數據;⑷ ASCII接收緩存區,存放接收到的ASCII數據。所有線程共享上述四個數據緩存區的數據,并設置互斥鎖用來確保一個時間段內只有一個任務在訪問共享數據。

 

串口通信多線程程序流程圖

圖4  串口通信多線程程序流程圖

  主線程主要負責設備的注冊,掃描是否有數據發送,如果有發送數據,進行優先級設置,將發送數據轉為發送所需的ASCII和RTU格式,存入發送緩存區以待發送。串口初始化主要功能為設置串口通信屬性,如波特率、數據位、校驗位和流控制等。串口通信采用異步通信模式,并以全局變量作為接收標志。解析數據時應將已收到數據和已發送數據進行匹配,根據發送的數據分析接收數據是否正確,如果接收數據正確則丟棄已發送命令,否則重發。

3 快速數據轉換算法

  由于上位機與下位機的個別數據存儲格式不同,需要轉換為對方能夠識別的數據。下面以浮點數為例,說明本次設計中的數據轉換機制。

  上位機采用Linux操作系統,浮點數采用IEEE-754數據存儲格式。IEEE規定一個浮點數在內存中占四字節,其數據格式如圖5所示。

IEEE浮點數數據格式

圖5  IEEE浮點數數據格式

  在IEEE浮點數數據存儲格式下,第1位為符號位,指示浮點數的正負。指數部分共8位,第一個字節的后7位和第二個字節的第1位,表示范圍是0 ~ 255。實際上的指數值應是-128 ~ 127的有符號整數,為了存儲方便,指數值都加127轉為0 ~ 255存儲,即實際指數值是E-127。最后23位為小數部分,需要注意的是,在計算時,要將小數部分最高位補1。因此,實際的浮點數值可以通過下面的公式計算:

Real =(-1)*Sign*(D/224)*2E-126

  下位機浮點數在內存中同樣占四字節,其數據格式如圖6所示。

下位機浮點數數據格式

圖6  下位機浮點數數據格式

  下位機浮點數數據格式中,數符用來指示浮點數的正負,階符用于指示指數的正負,階碼有6位,即指數范圍是0~64,小數部分比IEEE浮點數數據格式中多1位,因此在計算時高位無需補1。實際的浮點數數值可以通過下面公式計算:

Real =(-1)*Sign*(D/224)*2(-1)*SignE*E

  實際傳輸過程中,從下位機傳來的浮點數,需要先轉為IEEE標準格式,傳給下位機的數據同樣需要轉為下位機能夠識別的格式。由于浮點數存儲格式復雜,在轉換數據時應盡量避免使用浮點數運算。通過比較圖5和圖6可知,兩種存儲格式的最后23位相同,可以共用。因此,在編程時,采用共同體能夠更快的解決兩者之間的轉換。編寫共同體如下:

  union {

  float fdata;

  unsigned char byte[4];

  }data_change;

  fdata中存放轉換前得浮點數,而字符型數組byte直接對應浮點數在計算機中以二進制存儲的四個字節。通過對字符型數組的簡單的加減法及移位計算就可以快速在兩種存儲格式之間轉換。 實際測試時,采用共同體的數據轉換在響應時間上要明顯優于未采用共同體的數制轉換,提高了串口通信的實時性。

  4 結論

  本文創新點:(1)將嵌入式Linux系統應用于無紙記錄儀,使得該裝置體積小,功能強,實時性能及可擴展性能良好;(2)實現了MODBUS協議中RTU與ASCII傳輸模式的共存,使無紙記錄儀具有更強的通用性;(3)通過在數據轉換編程中采用共同體這方面的改進,提高了無紙記錄儀串口通信的實時性。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          黑人巨大精品欧美一区二区小视频| 亚洲高清免费| 亚洲高清在线观看一区| 美女视频一区免费观看| 午夜精品久久久久久久男人的天堂| 亚洲人成小说网站色在线| 这里只有精品在线播放| 国产精品高清在线观看| 亚洲女爱视频在线| 韩国视频理论视频久久| 午夜精品福利视频| 黄色av日韩| 亚洲精选一区| 亚洲男女毛片无遮挡| 一本色道久久精品| 欧美精品在线一区二区三区| 久久久久久综合网天天| 国产精品一国产精品k频道56| 99riav1国产精品视频| 欧美大胆a视频| 久久久久久久久久久久久久一区| 久久精品99国产精品| 亚洲欧洲另类| 亚洲福利视频专区| 一区二区亚洲精品国产| 日韩视频精品在线观看| 在线视频精品一区| 欧美福利小视频| 一区二区三区成人精品| 亚洲欧美国产制服动漫| 亚洲综合日本| 欧美亚洲第一页| 欧美第一黄色网| 欧美午夜精品电影| 欧美寡妇偷汉性猛交| 久久人人爽人人爽| 午夜激情久久久| 亚洲精品美女久久7777777| 欧美福利视频在线观看| 欧美一区二区三区日韩视频| 亚洲一区二区三区四区在线观看| 欧美日本在线视频| 欧美日韩精品福利| 国产精品视频网站| 欧美激情一区二区久久久| 国产精品欧美一区二区三区奶水| 国产精品国产三级国产| 午夜精品99久久免费| 欧美国产在线视频| 欧美在线观看网站| 欧美 日韩 国产一区二区在线视频| 欧美精品系列| 久久精品欧美日韩精品| 久久精品成人一区二区三区| 国产精品网站在线观看| 亚洲黄色影片| 久久九九有精品国产23| 亚洲欧美视频在线观看| 99国产精品久久久久久久久久| 亚洲精品久久久久久一区二区| 国产精品国产三级国产aⅴ9色| 欧美精品在线一区二区| 欧美国产日韩一区二区三区| 国产精品一卡二| 欧美成在线视频| 日韩亚洲精品视频| 99re热这里只有精品视频| 久久综合福利| 欧美大片国产精品| 欧美亚洲综合久久| 亚洲精品国产精品久久清纯直播| 欧美日韩一区二区视频在线| 午夜久久久久久久久久一区二区| 日韩一级片网址| 伊人狠狠色j香婷婷综合| 久久精品夜夜夜夜久久| 一本色道久久综合狠狠躁的推荐| 乱人伦精品视频在线观看| 欧美一区二区在线观看| 欧美成人免费在线| 在线观看精品视频| 黄色小说综合网站| 欧美在线观看一区二区三区| 亚洲一区二区成人| 久久精品国产综合| 黄色日韩在线| 一级成人国产| 欧美激情视频在线免费观看 欧美视频免费一| 欧美高清视频www夜色资源网| 欧美激情久久久久久| 国产深夜精品福利| 国产日韩欧美一区在线| 99国产精品国产精品久久| 亚洲免费中文字幕| 日韩视频亚洲视频| 国内精品嫩模av私拍在线观看| 中文日韩在线视频| 亚洲美女av在线播放| 欧美视频精品在线| 亚洲精品在线观| 亚洲综合视频网| 亚洲九九精品| 久久国产一区二区三区| 国产日韩欧美a| 久久精品卡一| 国产精品久久久久久久久久直播| 欧美aa在线视频| 欧美日韩午夜精品| 欧美精彩视频一区二区三区| 国产精品成人在线| 国产精品户外野外| 欧美国产日韩一区二区三区| 一区二区成人精品| 国产综合自拍| 亚洲男人第一av网站| 蜜桃精品久久久久久久免费影院| 国产精品久久久久三级| 国产区欧美区日韩区| 中国亚洲黄色| 伊人久久大香线蕉av超碰演员| 国产精品网曝门| 在线免费观看成人网| 快射av在线播放一区| 久久视频这里只有精品| 欧美国产综合视频| 欧美精品三级在线观看| 午夜欧美精品久久久久久久| 欧美激情一二三区| 欧美裸体一区二区三区| 亚洲精品免费在线观看| 一区二区三区欧美| 欧美日本韩国一区| 欧美日韩免费区域视频在线观看| 亚洲免费观看视频| 久久―日本道色综合久久| 欧美视频一区| 国产精品综合久久久| 欧美亚洲色图校园春色| 99在线|亚洲一区二区| 亚洲国产一区二区精品专区| 亚洲精品一区二区三区不| 欧美第一黄网免费网站| 国产一区二区三区的电影| 亚洲午夜精品久久久久久浪潮| 老司机免费视频一区二区三区| 激情欧美丁香| 新片速递亚洲合集欧美合集| 亚洲一级在线| 国产日韩精品视频一区| 一区二区亚洲精品国产| 亚洲高清色综合| 99精品国产高清一区二区| 欧美一级久久| 欧美日韩国产限制| 欧美丰满少妇xxxbbb| 国产精品一卡二卡| 欧美小视频在线观看| 国产日韩欧美91| 日韩视频―中文字幕| 欧美精品日韩www.p站| 午夜精品久久久久久99热| 六月天综合网| 一区二区三区.www| 欧美精品二区| 欧美视频在线观看视频极品| 亚洲破处大片| 欧美日韩亚洲一区二区三区在线| 国产精品成人一区二区三区夜夜夜| 国产一区视频在线观看免费| 久久久久久国产精品mv| 91久久一区二区| 欧美精品999| 老司机精品久久| 久久久精品动漫| 伊人久久久大香线蕉综合直播| 欧美日韩一区视频| 欧美全黄视频| 羞羞漫画18久久大片| 国产精品啊啊啊| 国内免费精品永久在线视频| 欧美日韩精品免费观看视频完整| 亚洲一区二区三区激情| 在线观看91久久久久久| 国产精品视频一区二区三区| 亚洲国内自拍| 欧美日韩精品伦理作品在线免费观看| 欧美日韩一区二区三区在线| 国产精品网站视频| 国产精品久久777777毛茸茸| 一本一本大道香蕉久在线精品| 国产精品一区二区三区久久久| 亚洲摸下面视频| 国产精品一级在线| 亚洲国产mv| 国产精品久久久久久亚洲毛片| 亚洲欧美在线aaa| 揄拍成人国产精品视频| 亚洲免费网址| 另类天堂av| 亚洲午夜小视频| 国产美女精品免费电影| 国产精品免费视频xxxx| 久久av免费一区| 久久久久久欧美| 久久综合色天天久久综合图片| 一区二区成人精品| 在线免费不卡视频| 一个人看的www久久| 亚洲国产成人精品视频| 韩国三级电影久久久久久| 国产欧美日本一区二区三区| 免费日韩精品中文字幕视频在线| 亚洲欧美日韩一区二区| 欧美日韩视频第一区| 国产精品无码永久免费888| 91久久精品国产91久久性色| 91久久精品国产91性色| 国语自产精品视频在线看一大j8| 国产精品第三页| 久久成人综合网| 国产精品国产亚洲精品看不卡15| 亚洲精品一区二区网址| 欧美一区二区三区免费看| 国内精品久久久久影院薰衣草| 日韩网站在线| 蜜桃久久av一区| 久久久亚洲午夜电影| 美女脱光内衣内裤视频久久网站| 亚洲精选在线| 国外成人在线| 欧美精品免费播放| 亚洲精品视频免费在线观看| 亚洲精品国产精品国自产在线| 一区二区三区久久| 欧美日韩亚洲综合在线| 欧美视频在线观看视频极品| 一本久久a久久免费精品不卡| 精品成人在线观看| 欧美日韩在线电影| 一区二区精品在线| 午夜精品一区二区三区四区| 亚洲免费中文字幕| 久久激情视频久久| 亚洲精品免费一区二区三区| 午夜精品福利在线观看| 一本色道久久综合亚洲精品小说| 欧美日韩在线播放一区| 欧美一级在线播放| 亚洲精品欧美一区二区三区| 一区二区三区国产在线| 亚洲乱码国产乱码精品精98午夜| 亚洲免费成人| 欧美精品videossex性护士| 一区二区三区蜜桃网| 国产欧美1区2区3区| 日韩亚洲欧美一区二区三区| 久久久国产成人精品| 一色屋精品视频免费看| 国产日韩精品在线播放| 亚洲香蕉网站| 亚洲精品婷婷| 亚洲激情网站免费观看| 欧美午夜精品久久久久免费视| 久久漫画官网| 亚洲欧美日韩国产综合在线| 亚洲激情在线视频| 一区二区三区久久精品| 午夜性色一区二区三区免费视频| 亚洲国产99精品国自产| 狠狠色伊人亚洲综合成人| 亚洲精品一区二区三| 亚洲欧洲在线免费| 欧美日韩日本视频| 欧美日韩精品一区二区三区四区| 老色批av在线精品| 亚洲砖区区免费| 亚洲免费精彩视频| 男人的天堂成人在线| 日韩亚洲在线| 小黄鸭精品aⅴ导航网站入口| 欧美在线在线| 国产精品亚洲美女av网站| 欧美一区二区三区视频| 夜夜爽夜夜爽精品视频| 亚洲无线观看| 亚洲日本va午夜在线电影| 国产一区二区三区久久精品| 国产欧美日韩高清| 欧美aaaaaaaa牛牛影院| 一区二区不卡在线视频 午夜欧美不卡在| 久久国产福利国产秒拍| 免费观看一区| 欧美 日韩 国产一区二区在线视频| 久久久不卡网国产精品一区| 美女爽到呻吟久久久久| 99re热这里只有精品免费视频| 美女999久久久精品视频| 欧美日韩成人激情| 国产热re99久久6国产精品| 久久久久88色偷偷免费| 99成人免费视频| 欧美日韩精品一本二本三本| 欧美日韩美女一区二区| 国产欧美日韩一区二区三区在线| 日韩天堂在线视频| 国产欧美二区| 亚洲风情亚aⅴ在线发布| 欧美亚洲一区| 亚洲精品女av网站| 国产麻豆视频精品| 欧美一级久久久久久久大片| 久久久久久久尹人综合网亚洲| 小处雏高清一区二区三区| 亚洲第一精品夜夜躁人人爽| 亚洲愉拍自拍另类高清精品| 久久久青草青青国产亚洲免观| 亚洲国产国产亚洲一二三| 欧美日韩国产一区二区三区| 亚洲一区二三| 亚洲网站在线播放| 黄色日韩在线| 亚洲一区二区三区涩| 在线视频亚洲| 亚洲视频一区二区免费在线观看| 校园春色国产精品| 欧美午夜不卡影院在线观看完整版免费| 欧美精品一区二区三区视频| 羞羞漫画18久久大片|