《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Linux的現場總線無線通信卡的實現
基于Linux的現場總線無線通信卡的實現
中國傳動網
王軍 王宏 徐皚冬
摘要: 通過使用無線分散控制站和無線網橋實現現場總線的無線接入,目前是比較穩定、便捷的無限擴展方法。本文提出的無線分散控制站中無線通信卡的軟硬件實現方法是一個通用的快捷開發方案。無線技術給工業帶來很多益處如減少設備配置和安裝時間。市場也提供了較成熟的無線技術如IEEE 802.11標準, IEEE 802.15.4 標準和藍牙技術。但在工業現場無線技術仍不能被廣泛使用。原因之一是無線信道的實時性和出錯率達不到要求。隨著合適的協議機制和傳輸調度的設計,并細致結合這些方案,無線技術必將會在工業現場總線中得到廣泛使用。
Abstract:
Key words :

1.引言

  使用無線連接設備的便利已經導致了在消費電子(商業)領域中無線技術被空前成功的應用。在此基礎上基于無線技術的應用開始出現在各個領域。在工業或工廠底層環境中,使用無線技術的優勢更是多方面的。

  第一,在工業環境中往往需要大量的布線,采用無線技術不僅會使安裝和維護的成本有效減少,而且會使設備的調整規劃和重新配置更加的容易。

  第二,無線技術的引入對于解決在有化學腐蝕、震動和移動部件等惡劣環境中對各種線纜的潛在損傷等問題顯得更加有效。

  第三,考慮到工廠設備中適應性和靈活性,固定系統可以通過無線技術和現有的移動子系統或移動機器人連接通信。

  第四,對在工廠設備進行臨時訪問任務(如診斷或程序設計等)使用無線技術會更加簡化(如使用無線手持設備)。

  在解決工業環境及過程控制環境下的許多移動對象,如移動機器人與自治運輸設備之間的協調;旋轉對象,如機械臂;危險環境對象的監測與控制問題,如分布式控制等工業環境無線技術發揮極大的作用。將無線技術應用到現場總線中來解決傳統現場總線存在的問題,正受到學術界和工業界的極大關注。

2.現場總線的無線接入方法

  為了使無線技術能夠無縫而更廣泛地應用于工業現場,使現場設備無線接入到現存的現場總線,國內外相關領域的技術人員進行了一定的嘗試。按在不同層上實現接入可以將接入方案分為三大類:用戶層接入、數據鏈路層接入和物理層接入。

  (1)用戶層接入:在用戶層設一個OPC服務器,通過OPC服務器進行有線網段與無線網段之間的數據交換。該方案其優點是簡單易實現,雙方可保持原有結構不動,兩側的“連接”可隨時通過軟件的控制建立或分離。缺點是中間環節太多,實時性得不到保證。

 ?。?)物理層的接入:在某些站點的有線連接“下”面加裝Modem。無線站點的信號經過此無線收發裝置將幀格式轉換后,聯入有線網段接口,因此遠端的無線站點被“視為”同質站點。這樣,所有的有線、無線站點均采用原有現場總線協議,只是在最底層的某些物理連接上,無線連接代替了有線的連接。其缺點是此方法僅實現了點對點的連接,無線站點不具有“漫游接入”的能力。

 ?。?)數據鏈路層的接入:此方法源自WLAN和以太網的聯接方式,即在PHY層和DDL層之上加一個無線網關。該無線網關實現了無線網段數據與有線網段之間的數據格式轉換和轉發。原有的現場總線保持不動,加裝一個無線網段的AP接入點。當兩網段間有數據交換時,才會通過AP點經過協議轉換把數據轉發到另一端。

  數據鏈路層的接入是現階段最被關注的方法。其具體實現方法較多,但大多處于理論研究階段或需要對原有的現場總線進行改造,而工業廠家又不想使現正運行的現場總線暫停工作。這使得現階段的一些其無線接入技術在現場總線中應用變得困難。為了使無線現場設備能夠應用于工業現場,又不改動現有的現場總線系統,目前較成熟的技術就是使用無線分散控制站來與原有的現場總線連接,實現現場設備的無線接入。無線分散控制站一般由IO模塊控制卡、無線通信卡兩部分組成。兩塊板卡通過IO模塊控制卡上的雙端口RAM交換數據,通過中斷觸發數據讀寫操作,從而達到通信效果。其關鍵技術就是如何實現無線通信卡的軟件設計。

3.基于Linux的無線通信卡

  在無線分散控制站中無線通信卡使用AT91RM9200控制器并通過USB接口加載符合802.11b協議的無線傳輸模塊,其操作系統為Linux系統。

3.1基于Linux的無線通信卡的工作原理

  無線通信卡運行著現場總線協議棧和功能塊(MAI,MAO,MDI,MDO)等。根據所接入的現場總線的不同選用相應的協議棧。使用向IO模塊控制卡發中斷及響應IO模塊控制卡中斷的方式,通過IO模塊控制卡來配置、讀取和控制現場設備。無線通信卡與IO模塊控制卡之間數據傳輸是直接通過讀寫IO模塊控制卡上的雙端口RAM實現的。另一方面,無線通信卡通過其上面的USB接口加載了符合802.11b協議的無線傳輸模塊,能夠通過該模塊實現與有線網絡相連,使其與相應的現場總線工作站通信,其結構示意圖如圖3-1所示:

圖3-1無線通信卡的結構示意圖

3.2基于Linux的無線通信卡的軟件設計

  無線分散控制站中無線通信卡軟件開發基于Linux操作系統。由于Linux系統基于802.11b協議的無線驅動已經很成熟了,而基于Linux操作系統的協議棧軟件移植也比較容易。因此,選擇Linux系統會有效的提高無線通信卡的開發周期。

  基于Linux的無線通信卡與有線的通信卡在協議棧和功能塊方面大致相同,僅需將應用程序向Linux系統上移植即可。但由于采用了Linux系統在與IO模塊控制卡通信的實現上就相對比較復雜了。與IO模塊控制卡通信的程序流程圖如下圖3-2所示:

圖3-2 與IO模塊控制卡通信的程序流程圖

3.3軟件實現中關鍵性問題的解決

  在Linux操作系統下對于中斷及其它系統資源的操作有特定的規范,如內核模式操作和用戶模式操作具有不同操作權限,內核空間與用戶空間也不能隨意互訪。導致如協議棧無法直接對雙端口RAM進行讀寫,也無法直接向I/O模塊控制卡收發中斷,在Linux系統下,只有在內核模式下才可以做到。那么,怎么樣將數據寫入到雙端口RAM中,然后發送中斷信號通知對方及如何響應對方的中斷并從雙端口RAM中讀數是軟件實現中的關鍵性問題。

3.3.1發中斷與注冊中斷處理程序的實現

  由于發中斷與注冊中斷處理程序是對硬件直接操作,在Linux系統下用戶程序無法直接對其硬件進行操作。因此,必須編寫相應的內核模塊,在內核模塊中完成發中斷與注冊中斷處理程序的操作。在用戶程序中動態加載相應內核模塊來達到用戶程序發中斷與注冊中斷處理程序的效果。其注冊中斷處理程序的內核模塊關鍵性代碼如下:

  int init_module(void) //中斷注冊模塊初始化

 ?。?…… /* 初始化設置 */

  AT91_SYS->AIC_SMR[25]|=0X20; //設置中斷下跳沿觸發

  if (request_irq(n, interrupt_program, INTERRUPT," IRQ1",NULL))

  // 請求分配中斷號為n的快速中斷處理

  // interrupt_program為指向處理這個中斷的中斷處理程序的指針

  { ……/*沒有申請成功 根據返回值進行出錯處理 * / }

  else

 ?。?printk("<1> 注冊中斷成功 ! \n");

  return 0;}

  init_waitqueue_head(&my_queue);

 ?。?/p>

  void cleanup_module(void)

 ?。?…… /* 釋放資源 */

  free_irq(n,NULL); //釋放中斷線n

 ?。?/p>

  在用戶程序中發中斷時,通過調用system(send_riq)來動態執行內核模塊程序來控制發送中斷的管腳的信號,從而實現在用戶程序發中斷的效果。其發中斷的內核模塊關鍵性代碼如下:

  AT91_SYS->PIOC_PER |= AT91C_PIO_PC15;//設置PC15IO使能

  AT91_SYS->PIOC_OER |= AT91C_PIO_PC15;//設置PC15輸出使能

  //發送一個方波中斷信號

  AT91_SYS->PIOC_CODR |= AT91C_PIO_PC15;

  for(i=1;i

  AT91_SYS->PIOC_SODR |= AT91C_PIO_PC15;

3.3.2雙端口RAM驅動的實現

  由于用戶程序不能直接對雙端口RAM進行讀寫,因此必須根據用戶程序的需要編寫雙端口RAM的驅動,以內核模塊的形式動態加載到系統中去。Linux系統將所有設備都看做是文件,對設備的讀寫相當于對文件的讀寫。雙端口RAM驅動模塊加載后,用戶程序就可以像讀寫文件一樣,間接的對雙端口RAM進行讀寫了。其雙端口RAM驅動模塊的主要實現過程如下:

  static int write_dpram(struct file *file, const char *buf, u32 count, loff_t *f_pos)

 ?。?…… /* 寫初始化 */

  copy_from_user(wMessage,buf,count);

  …… /* 進行數據處理 */

  for (i=0;i

 ?。?writeb(wMessage[i], base+wadd);

  wadd++; }

  …… /*向IO模塊控制卡發中斷信號*/

 ?。?/p>

  static int read_dpram(struct file *file,char *buf,u32 count,loff_t *f_pos)

 ?。?…… /*讀函數則調用相應的readb( )和copy_to_user( )函數,與寫函數同理*/}

  static int open_dpram(struct inode *inode,struct file *file )

 ?。?…… /*初始化*/

  if (!request_mem_region(AT91_DPRAM,BUF_LEN*sizeof(u8),DEVICE_NAME))

  { …… /*未申請到該內存空間時進行相應處理*/} //申請使用內存空間

  base =ioremap(AT91_DPRAM,BUF_LEN*sizeof(u8));//為設備內存區域分配虛擬地址

  …… /* 設置DPRAM讀寫時序*/

 ?。?/p>

  static int release_dpram(struct inode *inode,struct file *file )

 ?。?…… /* 釋放相應資iounmap( )和release_mem_region();}

  以上為DPRAM設備驅動的打開、讀寫、關閉函數的實現,然后通過以下標記化結構將其驅動的功能映射到前面的具體實現函數上:

  static struct file_operations test_fops = {

  read:read_dpram,

  write:write_dpram,

  open: open_dpram,

  release:release_dpram

 ?。?

  另外,在驅動程序初始化時必須通過register_chrdev( )注冊。在加載該驅動前要使用system("mknod /dev/設備名 c 主設備號 次設備號")創建設備文件并為該設備分配設備號。該雙端口RAM驅動是通用的,無論什么功能的板卡上面有雙端口RAM并且是基于Linux的系統的都可以使用該驅動。

4. 測試

  為了測試該無線通信卡的性能,該測試選用了符合EPA(Ethernet for Plant Automation)標準的現場總線系統進行無線擴展。EPA是我國第一個擁有自主知識產權的現場總線標準。所搭建的測試系統基本和有線EPA演示系統一致。包括一個EPA無線現場設備B(包括EPA無線通信卡和IO模塊控制卡)和一個EPA無線接入網橋、一臺PC機及一個燈箱,如圖4-1所示。燈箱中的溫度傳感器與AI模塊相連,將溫度值傳遞給AI模塊,并通過設備A發送到以太網上。設備B接收到此溫度值后,將其與額定溫度值相比較,如果低于額定溫度值,則通過AO模塊輸出電流來控制燈箱內燈泡加熱;如果高于額定溫度值,則中斷AO模塊的輸出電流,切斷燈泡的電流輸入,使燈箱內的溫度下降,從而達到保持燈箱內溫度恒定的目的。

圖4-1測試系統示意圖

  實驗證明,無線通信卡與IO模塊控制卡之間數據傳輸穩定,這個系統運行效果良好,達到了預期目標,能夠滿足工業現場設備的通信要求。同時,并沒有改變和影響原來的有線現場總線的正常工作。

5.小結

  通過使用無線分散控制站和無線網橋實現現場總線的無線接入,目前是比較穩定、便捷的無限擴展方法。本文提出的無線分散控制站中無線通信卡的軟硬件實現方法是一個通用的快捷開發方案。無線技術給工業帶來很多益處如減少設備配置和安裝時間。市場也提供了較成熟的無線技術如IEEE 802.11標準, IEEE 802.15.4 標準和藍牙技術。但在工業現場無線技術仍不能被廣泛使用。原因之一是無線信道的實時性和出錯率達不到要求。隨著合適的協議機制和傳輸調度的設計,并細致結合這些方案,無線技術必將會在工業現場總線中得到廣泛使用。

此內容為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>
          亚洲开发第一视频在线播放| 欧美va亚洲va香蕉在线| 亚洲一区二区三区免费在线观看| 欧美亚洲三级| 亚洲精品网站在线播放gif| 国产精品福利av| 99在线观看免费视频精品观看| 亚洲在线视频网站| 国产精品日韩精品| 午夜精品在线视频| 亚洲天堂成人在线视频| 亚洲第一成人在线| 国产精品九九久久久久久久| 精品成人国产在线观看男人呻吟| 欧美日韩国产色综合一二三四| 99国产精品国产精品久久| 国产手机视频精品| 欧美福利网址| 国产精品女主播在线观看| 免费观看成人| 久久久久久久欧美精品| 亚洲欧美区自拍先锋| 国产丝袜美腿一区二区三区| 美日韩精品免费观看视频| 免费看黄裸体一级大秀欧美| 久久综合成人精品亚洲另类欧美| 欧美另类一区| 亚洲欧美乱综合| 久久精品中文字幕一区| 国产一区二区按摩在线观看| 国产麻豆一精品一av一免费| 午夜精品久久久久久久| 国际精品欧美精品| 国产精品99久久久久久www| 国产精品久久久久毛片大屁完整版| 欧美日韩精品伦理作品在线免费观看| 国产精品高潮呻吟久久| 久久综合色8888| 亚洲性线免费观看视频成熟| 欧美福利在线观看| 久久精品91久久香蕉加勒比| 亚洲人成精品久久久久| 亚洲美女91| 好吊成人免视频| 国产日韩精品久久| 欧美乱妇高清无乱码| 亚洲一区二区视频在线观看| 国产午夜精品在线观看| 国产亚洲成精品久久| 欧美三级视频在线观看| 国产美女扒开尿口久久久| 国产日韩欧美在线| 亚洲国产精品第一区二区三区| 欧美国产综合一区二区| 精品96久久久久久中文字幕无| 国产永久精品大片wwwapp| 亚洲国产精品va在看黑人| 久久免费黄色| 欧美在线三区| 久久国产精品亚洲va麻豆| 精品9999| 国产亚洲毛片在线| 小处雏高清一区二区三区| 欧美大秀在线观看| 亚洲风情亚aⅴ在线发布| 亚洲午夜国产一区99re久久| 久久夜色精品一区| 国产日韩欧美电影在线观看| 国语自产偷拍精品视频偷| 在线观看亚洲视频| 中文在线资源观看视频网站免费不卡| 欧美gay视频激情| 久久久久99| 亚洲自啪免费| 欧美日韩免费| 亚洲精品偷拍| 亚洲精品国产精品国自产观看浪潮| 亚洲精品亚洲人成人网| 亚洲永久免费精品| 久久精品人人做人人爽电影蜜月| 久久综合国产精品| 亚洲图片欧美午夜| 欧美日韩精品欧美日韩精品一| 一区二区三区中文在线观看| 国产裸体写真av一区二区| 韩日欧美一区| 久久久综合网站| 国产欧美日韩综合一区在线播放| 一区一区视频| 亚洲一区二区三区涩| 在线观看中文字幕不卡| 国产精品久久久久久影视| 久久综合久色欧美综合狠狠| 欧美日韩国产在线播放| 久久精精品视频| 亚洲影院免费| 国产午夜精品理论片a级探花| 亚洲欧美日韩综合aⅴ视频| 激情综合网激情| 国产精品久久久久久一区二区三区| 亚洲欧美综合国产精品一区| 久热国产精品| 在线日韩av| 99国产精品久久久久久久成人热| 欧美日韩情趣电影| 久久爱www| 亚洲欧美在线另类| 国产精品久久久久久久久久三级| 久久亚洲私人国产精品va媚药| 狠狠久久五月精品中文字幕| 国产欧美日韩激情| 亚洲欧洲三级电影| 在线观看成人网| 国产在线观看精品一区二区三区| 国产日本欧洲亚洲| 欧美一区日本一区韩国一区| 国产精品扒开腿做爽爽爽软件| 久久久久久黄| 亚洲娇小video精品| 9人人澡人人爽人人精品| 欧美一区二区视频网站| 国产精品亚洲一区二区三区在线| 亚洲一区黄色| 国产日韩欧美不卡在线| 亚洲欧美日韩一区在线| 亚洲影院污污.| 久久免费视频这里只有精品| 欧美久久九九| 亚洲午夜精品一区二区三区他趣| 亚洲欧美日韩在线播放| 亚洲欧美综合精品久久成人| 久久精品道一区二区三区| 久久综合久久综合久久| 欧美日韩ab| 欧美一区国产二区| 蜜臀av性久久久久蜜臀aⅴ| 国产精品成人观看视频免费| 国产精品女人久久久久久| 欧美一区国产一区| 欧美一区1区三区3区公司| 久久久精品免费视频| 久久夜色精品国产欧美乱| 久久字幕精品一区| 欧美a级在线| 欧美私人啪啪vps| 欧美日韩国产在线一区| 好吊妞这里只有精品| 国产精品第三页| 欧美视频免费在线观看| 快射av在线播放一区| 免费成人小视频| 裸体歌舞表演一区二区| 在线观看亚洲视频啊啊啊啊| 国户精品久久久久久久久久久不卡| 亚洲黄色片网站| 亚洲成人在线观看视频| 亚洲一区二区视频在线| 日韩视频一区| 亚洲二区免费| 欧美激情a∨在线视频播放| 欧美日韩高清在线观看| 亚洲美洲欧洲综合国产一区| 亚洲韩国一区二区三区| 国产亚洲午夜高清国产拍精品| 亚洲欧洲精品一区二区三区| 国产在线拍偷自揄拍精品| 亚洲国产成人av好男人在线观看| 亚洲日本电影| 亚洲一区日韩在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲欧美日韩精品久久久久| 免费成人黄色| 99精品国产在热久久婷婷| 国产午夜精品久久久| 一本色道久久综合精品竹菊| 性色av一区二区三区在线观看| 男女激情视频一区| 国产乱码精品一区二区三区五月婷| 欧美99在线视频观看| 麻豆精品精品国产自在97香蕉| 国产精品一级久久久| 亚洲影视综合| 国产视频观看一区| 一个色综合导航| 久久久久久亚洲综合影院红桃| 日韩亚洲欧美综合| 久久在线免费观看视频| 欧美1区2区3区| 久久这里有精品视频| 国产麻豆一精品一av一免费| 久久婷婷成人综合色| 国产精品久久久久毛片软件| 亚洲电影一级黄| 国产精品美女久久久久久免费| 狠狠操狠狠色综合网| 亚洲三级影院| 日韩亚洲精品在线| 牛人盗摄一区二区三区视频| 午夜精品久久久久影视| 欧美三区在线视频| 国产精品欧美日韩一区| 欧美精品三区| 裸体歌舞表演一区二区| 国产在线视频不卡二| 日韩视频免费在线| 一区二区欧美在线观看| 亚洲精品免费观看| 欧美精品一区三区在线观看| 欧美另类极品videosbest最新版本| 欧美日韩一区二区三区在线视频| 欧美福利在线观看| 国产亚洲精品aa午夜观看| 麻豆9191精品国产| 欧美视频在线观看 亚洲欧| 欧美大片一区| 亚洲福利视频免费观看| 国产乱码精品1区2区3区| 伊人伊人伊人久久| 久久久久久噜噜噜久久久精品| 久久高清一区| 狠狠入ady亚洲精品经典电影| 欧美久久久久久蜜桃| 欧美亚洲在线观看| 亚洲日本中文字幕免费在线不卡| 国产精品久久久一区二区三区| 亚洲视频在线一区观看| 国产精品夜色7777狼人| 这里是久久伊人| 欧美电影电视剧在线观看| 亚洲国产精品国自产拍av秋霞| 美女视频黄 久久| 亚洲一区二区三区四区在线观看| 欧美在线视频免费观看| 中国av一区| 国产精品久久久久婷婷| 欧美日本亚洲韩国国产| 99视频精品全部免费在线| 国产一区二区三区精品久久久| 欧美成人一区二区三区在线观看| 亚洲精品视频一区| 欧美激情精品久久久久久免费印度| 国产精品国产三级国产a| 欧美日韩免费观看一区二区三区| 国产精品美女在线| 亚洲自拍三区| 国模精品娜娜一二三区| 亚洲夜晚福利在线观看| 曰韩精品一区二区| 欧美大片一区| 狠狠爱www人成狠狠爱综合网| 在线播放国产一区中文字幕剧情欧美| 一本色道久久综合亚洲精品按摩| 在线播放日韩欧美| 欧美搞黄网站| 久久久久久精| 久久午夜精品一区二区| 欧美xart系列高清| 国产婷婷色一区二区三区| 欧美午夜女人视频在线| 欧美在线关看| 国内精品一区二区三区| 在线视频免费在线观看一区二区| 亚洲国产精品女人久久久| 亚洲视频在线播放| 亚洲欧美国产一区二区三区| 国产真实乱子伦精品视频| 国产精品午夜电影| 国产精品美女久久久久av超清| 国产精品久久影院| 日韩亚洲成人av在线| 欧美视频中文在线看| 欧美激情在线有限公司| 欧美日韩中文字幕精品| 国产欧美日韩另类视频免费观看| 亚洲精品一区二区三区av| 亚洲国产精品热久久| 欧美午夜视频网站| 国产一区二区三区高清| 亚洲精品乱码久久久久久| 国产乱理伦片在线观看夜一区| 黑人中文字幕一区二区三区| 亚洲午夜电影在线观看| 亚洲一级影院| 久久伊人免费视频| 亚洲天堂免费观看| 国产亚洲福利一区| 国产日韩精品一区二区三区| 欧美va亚洲va日韩∨a综合色| 国产一区美女| 欧美黄色日本| 国产精品久久久久久久久久免费看| 国产区日韩欧美| 欧美v日韩v国产v| 欧美日韩视频在线一区二区| 欧美亚日韩国产aⅴ精品中极品| 国产欧美日韩三区| 欧美福利网址| 午夜激情亚洲| 欧美丰满少妇xxxbbb| 欧美日韩一区二区三区在线看| 亚洲国产精品嫩草影院| 欧美一级久久久久久久大片| 亚洲电影在线免费观看| 国产永久精品大片wwwapp| 欧美日韩免费观看中文| 日韩亚洲一区在线播放| 国产原创一区二区| 老司机成人网| 一区二区三区在线不卡| 免费亚洲网站| 亚洲电影免费观看高清完整版在线观看| 欧美日精品一区视频| 亚洲一区欧美| 女同性一区二区三区人了人一| 免费成人av| 欧美精品乱人伦久久久久久| 国产一级揄自揄精品视频| 国产精品视频网| 亚洲国产精品电影在线观看| 激情综合视频| 欧美精品三级日韩久久| 久久五月婷婷丁香社区| 亚洲一区999| 国产性天天综合网| 亚洲一区二区三区四区视频| 欧美福利视频一区| 在线欧美影院| 欧美日韩国产影院|