1引言
在工業現場中,由于有些環境比較惡劣,布線不方便等因素可以采用藍牙無線通信技術來實現數據的通信。同時,工業現場中有很多以不同方式互連的設備,其中包括非智能化簡單數據連接單元 (I/O)、智能化設備 (比如智能傳感器、單回路控制器和 PLC)和監控系統 (作為 HMI使用,用于數據記錄和監控 )等。這些設備大都是以各種不同的通信協議和媒介來互連的,其中有些就可以用藍牙無線技術代替。本文以 AT91R40008為例,結合 BCM04藍牙模塊開發了基于藍牙通信的工業接入點,組建了基于藍牙通信的閥門、流量計、溫度變送器測試系統,實現了帶有藍牙通信模塊的工業設備和現有的有線網路的通信。
????? 2藍牙技術簡介
藍牙(bluetooth)是一種短距的無線通訊技術,電子裝置彼此可以透過藍牙模塊而連接起來,省去了傳統的電線。透過芯片上的無線接收器,配有藍牙技術的電子產品能夠在十公尺的距離內彼此相通,傳輸速度可以達到每秒鐘 1兆字節。同時,藍牙支持設備短距離通信(一般是 10m之內)。能在包括移動電話、 PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。藍牙的標準是 IEEE802.15,工作在 2.4GHZ頻帶,帶寬為 1Mb/s。
藍牙技術在工業現場上的應用大致可以分為四個方面:
(1) 代替串行線纜。無線藍牙連接可以代替當前的串行線纜。
(2) 結合藍牙和互聯網技術。利用藍牙帶來的 CPU處理能力,給設備添加更多功能,如內置的 WEB用戶接口。
(3) 工業接入點。通過接入點將數個藍牙設備連接到傳統的有線網絡中,比如 IP網絡(如以太網)或者工業現場總線網絡(如 Controlnet和 Profibus等)。
(4) 無線傳感器和起動器。利用藍牙來將與物理制程關系昀密切的設備 (傳感器、起動器和簡單的模擬 /數字 IO設備)連接到監控系統。
3 藍牙接入點的系統設計
在工業現場中使用無線通信技術。這就要求工業設備使用藍牙功能,并能和現有的以太網或者工業現場總線網絡相連。在這里,藍牙接入點就好像一個 “電話交換機”,通過以太網供電設備和上位機進行通信,以及通過無線方式和工業現場設備進行數據交換,實現上位機對現場設備的數據采集、監測和控制。本文將藍牙接入點的系統設計分為硬件體系結構和軟件設計兩個部分。下面將對這兩部分進行具體說明。
3.1 硬件體系結構
該藍牙接入點包含了微處理器( AT91R40008)、存儲器、藍牙通信模塊、網絡通信接口、串口通信等重要組成部分。在該設計中,電源使用了以太網供電設備,該設備除了用于網口通信,還提供設計中所需要的電源。該電源經過電平轉換,為微處理器、存儲器、藍牙通信模塊等提供所需的 +3.3V和+1.8V電源。 32位的微處理器 AT91R40008通過串口 0和串口 1與串口通信部分和藍牙模塊進行數據交換。圖 1為藍牙接入點的硬件框圖。下面就其具體原理進行說明。
3.1.1 微處理器 AT91R40008
AT91R40008是 Atmel AT9116的 32位的微控制器系列產品。它以 ARM7TDMI 處理器內核為基礎。該處理器有一個高性能 32位精簡指令系統和一個高密度 16位的指令系統,同時具有較低的能耗。AT91R40008具有片上的 SRAM或 ROM、完全可編成的外部總線接口(EBI)、32個可編程的 I/O口、8個優先級、4個外部中斷、2個 USART及 16位的定時器/計數器等特點。除此之外,在內部寄存器實現對異常情況的快速處理,可以方便的進行即時控制和應用編程。
AT91R40008以與外部存儲器的直聯為特色,由外部 FLASH,經過完全可編程外部總線接口 (EBI)、一個八位優先向量中斷控制器,,及外部數據控制器,大大提高了處理器的即時性能。 AT91R40008使用 Atmel的高密度 CMOS技術, ARM7TDMI 處理器內核結合了片上高速存儲器及其外部設備,使其具有非常強大的功能。
微處理器部分的設計包含系統硬件的啟動與復位,地址總線、數據總線的分配和定義,通過串行線對藍牙模塊的讀寫等。
系統由外部的 50M鐘振作為時鐘源向 cpu輸入時鐘信號。復位電路由 10uF的電容、10K的電阻及按鍵組成低電平復位電路。該復位電路可實現上電低電平自動復位或者手動復位。AT91R40008內部 ROM為 128K,外部昀大可擴 64M的存儲器,由于設計需要,在設計中擴展了一片 2M字節的 SST36VF160對大量的軟件程序進行存儲。由于 AT91R40008內部包含的 SRAM已達 256K,對于數據存儲已夠用了,所以在外部沒有進行 RAM的擴展。網卡芯片 AX88796通過片選線、中斷線、讀寫信號控制線和地址數據總線和 cpu相連,實現藍牙接入點和上位機的網絡通信。AT91R40008通過串口 1實現與藍牙模塊的數據交換,通過串口 0實現和上位機之間的串口調試。
3.1.2? FLASH存儲器 SST36VF160
由于該系統是應用與工業現場以太網中,在軟件中必須加入相應的以太網規范標準,所以在系統設計中,在 cpu的外部拓展了 2M字節的 FLASH。SST39VF160是一個 1M×16的 CMOS多功能 FLASH器件,由 SST特有的高性能的 SupeRFlash技術制造而成。 SST39VF160功耗較低,工作電壓為 3.3V,具有高性能的編程功能,字編程時間為 14us。基于 SST39F160的這些優點選用這款 FLASH,在實踐中證明這款 FLASH能夠更方便和更低成本的滿足程序配置和數據存儲的要求。
3.1.3? 藍牙模塊 BCM04是滿足自適應的可進行數據交換和語音通信的藍牙通信模塊。其體積小,為 17.5×15.0×2.3mm;工
作電壓為 1.8V,功耗較低;以 UART為主接口,另有語音接口、 SPI接口、 PIO口等,其結構框圖如圖 2所示; BCM04內部集成了 16Kbits的 EEPROM和 4Mbits的 FLASH/ROM,具有豐富的存儲器資源。
在設計中,使用了藍牙模塊的 UART口和微處理器 AT91R40008的串口 1相連,通過藍牙模塊向工業現場的無線設備發送和接收數據,在由 cpu,經工業以太網將數據傳送到上位機中,實現上位機對藍牙設備的訪問與監控。
3.1.4? 網絡通信接口在設計中采用采用網絡接口將藍牙接入點接入工業以太網,數據由以太網傳遞到上位機中,實現工業現場的無線設備和上位機的通信。網絡隔離器采用的是 HR61H50L,網卡芯片使用的是 AX88796。
AX88796是臺灣 Asix公司推出的 NE2000兼容快速以太網控制器。其內部集成有 10/100 Mb/s自適應的物理層收發器和 8K×16位的 SRAM,支持 MCS-51系列、80186系列以及 MC68K系列等多種 CPU總線類型。 AX88796執行基于 IEEE802.3/IEEE802.3u 局域網標準的 10Mb/s和100Mb/s以太網控制功能,并提供IEEE802.3u兼容的媒質無關接口 MII(Media Independent Interface),用以支持在其它媒質上的應用。 AX88796的地址總線 SA[9:0]與數據總線 SD[15:0]分別與 CPU的地址/數據總線相連。 CPU通過 I/O讀寫 NE2000寄存器來控制 AX88796的工作狀態,通過遠程 DMA FIFOs與 AX88796的內部緩存 SRAM進行數據交換。SRAM與 MAC核之間進行 Local DMA將數據發送至 MAC層,再經由內部的 PHY層發送至 RJ45接口,或者經過 MII接口送至外部的物理層芯片。SEEPROM接口可以用來連接串行 EEPROM。EEPROM可用于存儲 MAC地址,供 AX88796每次初始化時讀取。
3.1.5? 電源部分
電源采用的是以太網供電設備,該設備采用符合 802.3受電設備標準,輸出標準的 +24V,經過 LM2576-5、 AS1117-1.8和 AS1117-3.3電源芯片,電平轉換后,輸出藍牙接入點上的 cpu、存儲器、網卡芯片和藍牙模塊上所需的 1.8V和 3.3V電源。
3.1.6? 串口通信
串口通信使用的是 MAX3232芯片。這里使用串口通信接口主要是為了調試藍牙模塊、 cpu和上位機之間的通信,及測試其通信性能。
3.2 軟件部分
在軟件設計部分,主要介紹一下藍牙模塊的通信原理。首先,初始化藍牙模塊,直到初始化成功。接著對通信模塊的各個端口進行定義。AT91R40008有 32位的 I/O口,設計時結合實際中的情況,考慮具體所用的端口,結合其他通信模塊定義這些端口。定義通信模塊端口完成以后,立即與現場無線設備進行連接。隨后,藍牙接入點開始搜索現場設備,并對現場設備進行讀寫,接收藍牙指令并更新。其藍牙模塊的通信流程圖如圖 3。
藍牙接入點向本地子網廣播自己的設備聲明,并接收其他設備的設備聲明。初始化完后 5秒鐘內用來搜尋子網中的鄰居設備,搜尋完成后,開始建立鄰居表,并把鄰居表內的其他從設備加入到無線調度列表中。網絡組建完成后,接入點按照確定性調度算法輪詢從設備。并把藍牙數據報文轉換成工業以太網的報文,放入工業
以太網的調度器中。設備聲明報文:
typedef struct _zgb_pkt_ann {
} zgb_pkt_ann;
信息分發報文:
typedef struct _zgb_distribute { INT8U devdesp[16]; INT8U mdata[16];
} zgb_distribute;
令牌:
typedef struct _zgb_pass_token { INT8U ans;INT8U res[3]; // 設備描述, 字符串?? //主 or從? 0主設備; 1 從設備? //設備狀態: 0設備未組態 , 自由發包;??????? //1設備已組態 , 獲取令牌才能發包 // 保留字段
// 設備描述, 字符串 // 信息分發的內容
//確認? 0不確認 ; 1確認 // 保留信息
} zgb_pass_token;
藍牙接入點在工業現場中的應用
在設計中,將工業以太網的有線網絡與工業現場的無線設備之間建立連接,如圖 4。工業現場的無線設備通過一個藍牙專用的傳輸協議將數據傳輸到藍牙接入點。數據經過轉換,成為工業以太網能夠識別和支持的格式,并傳輸到工業以太網中的一個發出指令請求的設備中。上位機同時可以通過以太網對數據進行監控。工業現場的無線設備還可以同時與一個帶有藍牙模塊的手持設備和一個藍牙接入點進行連接,對數據進行訪問和采集。
5 小結
在搭建完整個系統,并對藍牙的通信性能進行檢測的過程中發現,藍牙模塊由于采用的是信息無線傳輸方式,所以在傳輸過程中干擾較大,傳輸距離也較短。工業現場設備安裝的環境往往比較惡劣,怎樣使藍牙設備擁有更好的穩定性、更低的功耗、更廣的工作范圍,這些對硬件設計和軟件優化提出了更高的要求。
評論
查看更多