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