《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM7的藍(lán)牙接入點(diǎn)的研究
基于ARM7的藍(lán)牙接入點(diǎn)的研究
摘要: 近幾年來(lái),,在工業(yè)現(xiàn)場(chǎng)上越來(lái)越多的使用了藍(lán)牙技術(shù),。藍(lán)牙技術(shù)在工業(yè)上的應(yīng)用大概可以分為代替串行線纜、結(jié)合藍(lán)牙和互聯(lián)網(wǎng)技術(shù),、工業(yè)接入點(diǎn),、無(wú)線傳感器和起動(dòng)器四個(gè)方面,。本文著重介紹了藍(lán)牙接入點(diǎn)的硬件系統(tǒng)結(jié)構(gòu)和軟件流程,并針對(duì)在工業(yè)現(xiàn)場(chǎng)上使用藍(lán)牙接入點(diǎn)將閥門(mén),、流量計(jì),、溫度變送器等幾個(gè)藍(lán)牙設(shè)備連接到工業(yè)以太網(wǎng)中,實(shí)現(xiàn)了帶藍(lán)牙通信模塊的工業(yè)設(shè)備和現(xiàn)有的有線網(wǎng)絡(luò)的通信,。
Abstract:
Key words :

 1引言

  在工業(yè)現(xiàn)場(chǎng)中,,由于有些環(huán)境比較惡劣,布線不方便等因素可以采用藍(lán)牙無(wú)線通信技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的通信,。同時(shí),,工業(yè)現(xiàn)場(chǎng)中有很多以不同方式互連的設(shè)備,其中包括非智能化簡(jiǎn)單數(shù)據(jù)連接單元 (I/O),、智能化設(shè)備 (比如智能傳感器,、單回路控制器和 PLC)和監(jiān)控系統(tǒng) (作為 HMI使用,用于數(shù)據(jù)記錄和監(jiān)控 )等,。這些設(shè)備大都是以各種不同的通信協(xié)議和媒介來(lái)互連的,,其中有些就可以用藍(lán)牙無(wú)線技術(shù)代替。本文以 AT91R40008為例,,結(jié)合 BCM04藍(lán)牙模塊開(kāi)發(fā)了基于藍(lán)牙通信的工業(yè)接入點(diǎn),,組建了基于藍(lán)牙通信的閥門(mén)、流量計(jì),、溫度變送器測(cè)試系統(tǒng),,實(shí)現(xiàn)了帶有藍(lán)牙通信模塊的工業(yè)設(shè)備和現(xiàn)有的有線網(wǎng)路的通信。

2藍(lán)牙技術(shù)簡(jiǎn)介

  藍(lán)牙(bluetooth)是一種短距的無(wú)線通訊技術(shù),,電子裝置彼此可以透過(guò)藍(lán)牙模塊而連接起來(lái),,省去了傳統(tǒng)的電線。透過(guò)芯片上的無(wú)線接收器,,配有藍(lán)牙技術(shù)的電子產(chǎn)品能夠在十公尺的距離內(nèi)彼此相通,,傳輸速度可以達(dá)到每秒鐘 1兆字節(jié)。同時(shí),,藍(lán)牙支持設(shè)備短距離通信(一般是 10m之內(nèi)),。能在包括移動(dòng)電話、 PDA、無(wú)線耳機(jī),、筆記本電腦,、相關(guān)外設(shè)等眾多設(shè)備之間進(jìn)行無(wú)線信息交換。藍(lán)牙的標(biāo)準(zhǔn)是 IEEE802.15,,工作在 2.4GHZ頻帶,,帶寬為 1Mb/s。

  藍(lán)牙技術(shù)在工業(yè)現(xiàn)場(chǎng)上的應(yīng)用大致可以分為四個(gè)方面:

  (1) 代替串行線纜,。無(wú)線藍(lán)牙連接可以代替當(dāng)前的串行線纜,。

  (2) 結(jié)合藍(lán)牙和互聯(lián)網(wǎng)技術(shù)。利用藍(lán)牙帶來(lái)的 CPU處理能力,,給設(shè)備添加更多功能,如內(nèi)置的 WEB用戶接口,。

  (3) 工業(yè)接入點(diǎn),。通過(guò)接入點(diǎn)將數(shù)個(gè)藍(lán)牙設(shè)備連接到傳統(tǒng)的有線網(wǎng)絡(luò)中,比如 IP網(wǎng)絡(luò)(如以太網(wǎng))或者工業(yè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)(如 Controlnet和 Profibus等),。

  (4) 無(wú)線傳感器和起動(dòng)器,。利用藍(lán)牙來(lái)將與物理制程關(guān)系昀密切的設(shè)備 (傳感器、起動(dòng)器和簡(jiǎn)單的模擬 /數(shù)字 IO設(shè)備)連接到監(jiān)控系統(tǒng),。

  3 藍(lán)牙接入點(diǎn)的系統(tǒng)設(shè)計(jì)

  在工業(yè)現(xiàn)場(chǎng)中使用無(wú)線通信技術(shù),。這就要求工業(yè)設(shè)備使用藍(lán)牙功能,并能和現(xiàn)有的以太網(wǎng)或者工業(yè)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)相連,。在這里,,藍(lán)牙接入點(diǎn)就好像一個(gè) “電話交換機(jī)”,通過(guò)以太網(wǎng)供電設(shè)備和上位機(jī)進(jìn)行通信,,以及通過(guò)無(wú)線方式和工業(yè)現(xiàn)場(chǎng)設(shè)備進(jìn)行數(shù)據(jù)交換,,實(shí)現(xiàn)上位機(jī)對(duì)現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)采集、監(jiān)測(cè)和控制,。本文將藍(lán)牙接入點(diǎn)的系統(tǒng)設(shè)計(jì)分為硬件體系結(jié)構(gòu)和軟件設(shè)計(jì)兩個(gè)部分,。下面將對(duì)這兩部分進(jìn)行具體說(shuō)明。

  3.1 硬件體系結(jié)構(gòu)

  該藍(lán)牙接入點(diǎn)包含了微處理器( AT91R40008),、存儲(chǔ)器,、藍(lán)牙通信模塊、網(wǎng)絡(luò)通信接口,、串口通信等重要組成部分,。在該設(shè)計(jì)中,電源使用了以太網(wǎng)供電設(shè)備,,該設(shè)備除了用于網(wǎng)口通信,,還提供設(shè)計(jì)中所需要的電源。該電源經(jīng)過(guò)電平轉(zhuǎn)換,,為微處理器,、存儲(chǔ)器,、藍(lán)牙通信模塊等提供所需的 +3.3V和+1.8V電源。 32位的微處理器 AT91R40008通過(guò)串口 0和串口 1與串口通信部分和藍(lán)牙模塊進(jìn)行數(shù)據(jù)交換,。圖 1為藍(lán)牙接入點(diǎn)的硬件框圖,。下面就其具體原理進(jìn)行說(shuō)明。

  3.1.1 微處理器 AT91R40008

  AT91R40008是 Atmel AT9116的 32位的微控制器系列產(chǎn)品,。它以 ARM7TDMI 處理器內(nèi)核為基礎(chǔ),。該處理器有一個(gè)高性能 32位精簡(jiǎn)指令系統(tǒng)和一個(gè)高密度 16位的指令系統(tǒng),同時(shí)具有較低的能耗,。AT91R40008具有片上的 SRAM或 ROM,、完全可編成的外部總線接口(EBI)、32個(gè)可編程的 I/O口,、8個(gè)優(yōu)先級(jí),、4個(gè)外部中斷、2個(gè) USART及 16位的定時(shí)器/計(jì)數(shù)器等特點(diǎn),。除此之外,,在內(nèi)部寄存器實(shí)現(xiàn)對(duì)異常情況的快速處理,可以方便的進(jìn)行即時(shí)控制和應(yīng)用編程,。

  AT91R40008以與外部存儲(chǔ)器的直聯(lián)為特色,由外部 FLASH,,經(jīng)過(guò)完全可編程外部總線接口 (EBI)、一個(gè)八位優(yōu)先向量中斷控制器,,,及外部數(shù)據(jù)控制器,,大大提高了處理器的即時(shí)性能。 AT91R40008使用 Atmel的高密度 CMOS技術(shù),, ARM7TDMI 處理器內(nèi)核結(jié)合了片上高速存儲(chǔ)器及其外部設(shè)備,,使其具有非常強(qiáng)大的功能。

  微處理器部分的設(shè)計(jì)包含系統(tǒng)硬件的啟動(dòng)與復(fù)位,,地址總線,、數(shù)據(jù)總線的分配和定義,通過(guò)串行線對(duì)藍(lán)牙模塊的讀寫(xiě)等,。

  系統(tǒng)由外部的 50M鐘振作為時(shí)鐘源向 cpu輸入時(shí)鐘信號(hào),。復(fù)位電路由 10uF的電容、10K的電阻及按鍵組成低電平復(fù)位電路,。該復(fù)位電路可實(shí)現(xiàn)上電低電平自動(dòng)復(fù)位或者手動(dòng)復(fù)位,。AT91R40008內(nèi)部 ROM為 128K,外部昀大可擴(kuò) 64M的存儲(chǔ)器,,由于設(shè)計(jì)需要,,在設(shè)計(jì)中擴(kuò)展了一片 2M字節(jié)的 SST36VF160對(duì)大量的軟件程序進(jìn)行存儲(chǔ)。由于 AT91R40008內(nèi)部包含的 SRAM已達(dá) 256K,對(duì)于數(shù)據(jù)存儲(chǔ)已夠用了,,所以在外部沒(méi)有進(jìn)行 RAM的擴(kuò)展,。網(wǎng)卡芯片 AX88796通過(guò)片選線、中斷線,、讀寫(xiě)信號(hào)控制線和地址數(shù)據(jù)總線和 cpu相連,,實(shí)現(xiàn)藍(lán)牙接入點(diǎn)和上位機(jī)的網(wǎng)絡(luò)通信。AT91R40008通過(guò)串口 1實(shí)現(xiàn)與藍(lán)牙模塊的數(shù)據(jù)交換,,通過(guò)串口 0實(shí)現(xiàn)和上位機(jī)之間的串口調(diào)試,。

  3.1.2 FLASH存儲(chǔ)器 SST36VF160

  由于該系統(tǒng)是應(yīng)用與工業(yè)現(xiàn)場(chǎng)以太網(wǎng)中,在軟件中必須加入相應(yīng)的以太網(wǎng)規(guī)范標(biāo)準(zhǔn),,所以在系統(tǒng)設(shè)計(jì)中,,在 cpu的外部拓展了 2M字節(jié)的 FLASH。SST39VF160是一個(gè) 1M×16的 CMOS多功能 FLASH器件,,由 SST特有的高性能的 SupeRFlash技術(shù)制造而成,。 SST39VF160功耗較低,工作電壓為 3.3V,,具有高性能的編程功能,字編程時(shí)間為 14us,?;?SST39F160的這些優(yōu)點(diǎn)選用這款 FLASH,在實(shí)踐中證明這款 FLASH能夠更方便和更低成本的滿足程序配置和數(shù)據(jù)存儲(chǔ)的要求,。

  3.1.3 藍(lán)牙模塊 BCM04是滿足自適應(yīng)的可進(jìn)行數(shù)據(jù)交換和語(yǔ)音通信的藍(lán)牙通信模塊,。其體積小,為 17.5×15.0×2.3mm,;工作電壓為 1.8V,,功耗較低;以 UART為主接口,,另有語(yǔ)音接口,、 SPI接口、 PIO口等,,其結(jié)構(gòu)框圖如圖 2所示,; BCM04內(nèi)部集成了 16Kbits的 EEPROM和 4Mbits的 FLASH/ROM,具有豐富的存儲(chǔ)器資源,。

 

  在設(shè)計(jì)中,,使用了藍(lán)牙模塊的 UART口和微處理器 AT91R40008的串口 1相連,通過(guò)藍(lán)牙模塊向工業(yè)現(xiàn)場(chǎng)的無(wú)線設(shè)備發(fā)送和接收數(shù)據(jù),,在由 cpu,,經(jīng)工業(yè)以太網(wǎng)將數(shù)據(jù)傳送到上位機(jī)中,實(shí)現(xiàn)上位機(jī)對(duì)藍(lán)牙設(shè)備的訪問(wèn)與監(jiān)控。

  3.1.4 網(wǎng)絡(luò)通信接口在設(shè)計(jì)中采用采用網(wǎng)絡(luò)接口將藍(lán)牙接入點(diǎn)接入工業(yè)以太網(wǎng),,數(shù)據(jù)由以太網(wǎng)傳遞到上位機(jī)中,,實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)的無(wú)線設(shè)備和上位機(jī)的通信。網(wǎng)絡(luò)隔離器采用的是 HR61H50L,,網(wǎng)卡芯片使用的是 AX88796,。

  AX88796是臺(tái)灣 Asix公司推出的 NE2000兼容快速以太網(wǎng)控制器。其內(nèi)部集成有 10/100 Mb/s自適應(yīng)的物理層收發(fā)器和 8K×16位的 SRAM,,支持 MCS-51系列,、80186系列以及 MC68K系列等多種 CPU總線類型。 AX88796執(zhí)行基于 IEEE802.3/IEEE802.3u 局域網(wǎng)標(biāo)準(zhǔn)的 10Mb/s和100Mb/s以太網(wǎng)控制功能,,并提供IEEE802.3u兼容的媒質(zhì)無(wú)關(guān)接口 MII(Media Independent Interface),,用以支持在其它媒質(zhì)上的應(yīng)用。 AX88796的地址總線 SA[9:0]與數(shù)據(jù)總線 SD[15:0]分別與 CPU的地址/數(shù)據(jù)總線相連,。 CPU通過(guò) I/O讀寫(xiě) NE2000寄存器來(lái)控制 AX88796的工作狀態(tài),,通過(guò)遠(yuǎn)程 DMA FIFOs與 AX88796的內(nèi)部緩存 SRAM進(jìn)行數(shù)據(jù)交換。SRAM與 MAC核之間進(jìn)行 Local DMA將數(shù)據(jù)發(fā)送至 MAC層,,再經(jīng)由內(nèi)部的 PHY層發(fā)送至 RJ45接口,,或者經(jīng)過(guò) MII接口送至外部的物理層芯片。SEEPROM接口可以用來(lái)連接串行 EEPROM,。EEPROM可用于存儲(chǔ) MAC地址,,供 AX88796每次初始化時(shí)讀取。

  3.1.5 電源部分

  電源采用的是以太網(wǎng)供電設(shè)備,,該設(shè)備采用符合 802.3受電設(shè)備標(biāo)準(zhǔn),,輸出標(biāo)準(zhǔn)的 +24V,經(jīng)過(guò) LM2576-5,、 AS1117-1.8和 AS1117-3.3電源芯片,,電平轉(zhuǎn)換后,輸出藍(lán)牙接入點(diǎn)上的 cpu,、存儲(chǔ)器,、網(wǎng)卡芯片和藍(lán)牙模塊上所需的 1.8V和 3.3V電源。

  3.1.6 串口通信

串口通信使用的是 MAX3232芯片,。這里使用串口通信接口主要是為了調(diào)試藍(lán)牙模塊,、 cpu和上位機(jī)之間的通信,及測(cè)試其通信性能,。

3.2 軟件部分

  在軟件設(shè)計(jì)部分,,主要介紹一下藍(lán)牙模塊的通信原理。首先,,初始化藍(lán)牙模塊,,直到初始化成功,。接著對(duì)通信模塊的各個(gè)端口進(jìn)行定義。AT91R40008有 32位的 I/O口,,設(shè)計(jì)時(shí)結(jié)合實(shí)際中的情況,,考慮具體所用的端口,結(jié)合其他通信模塊定義這些端口,。定義通信模塊端口完成以后,,立即與現(xiàn)場(chǎng)無(wú)線設(shè)備進(jìn)行連接。隨后,,藍(lán)牙接入點(diǎn)開(kāi)始搜索現(xiàn)場(chǎng)設(shè)備,,并對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行讀寫(xiě),接收藍(lán)牙指令并更新,。其藍(lán)牙模塊的通信流程圖如圖 3,。

  藍(lán)牙接入點(diǎn)向本地子網(wǎng)廣播自己的設(shè)備聲明,并接收其他設(shè)備的設(shè)備聲明,。初始化完后 5秒鐘內(nèi)用來(lái)搜尋子網(wǎng)中的鄰居設(shè)備,,搜尋完成后,開(kāi)始建立鄰居表,,并把鄰居表內(nèi)的其他從設(shè)備加入到無(wú)線調(diào)度列表中,。網(wǎng)絡(luò)組建完成后,接入點(diǎn)按照確定性調(diào)度算法輪詢從設(shè)備,。并把藍(lán)牙數(shù)據(jù)報(bào)文轉(zhuǎn)換成工業(yè)以太網(wǎng)的報(bào)文,,放入工業(yè)

  以太網(wǎng)的調(diào)度器中。設(shè)備聲明報(bào)文:

  typedef struct _zgb_pkt_ann {

  } zgb_pkt_ann;

  信息分發(fā)報(bào)文:

  typedef struct _zgb_distribute { INT8U devdesp[16]; INT8U mdata[16];

  } zgb_distribute;

  令牌:

  typedef struct _zgb_pass_token { INT8U ans;INT8U res[3]; // 設(shè)備描述, 字符串 //主 or從? 0主設(shè)備; 1 從設(shè)備 //設(shè)備狀態(tài): 0設(shè)備未組態(tài) , 自由發(fā)包; //1設(shè)備已組態(tài) , 獲取令牌才能發(fā)包 // 保留字段

  // 設(shè)備描述, 字符串 // 信息分發(fā)的內(nèi)容

  //確認(rèn)? 0不確認(rèn) ; 1確認(rèn) // 保留信息

  } zgb_pass_token;

  藍(lán)牙接入點(diǎn)在工業(yè)現(xiàn)場(chǎng)中的應(yīng)用

  在設(shè)計(jì)中,,將工業(yè)以太網(wǎng)的有線網(wǎng)絡(luò)與工業(yè)現(xiàn)場(chǎng)的無(wú)線設(shè)備之間建立連接,如圖 4,。工業(yè)現(xiàn)場(chǎng)的無(wú)線設(shè)備通過(guò)一個(gè)藍(lán)牙專用的傳輸協(xié)議將數(shù)據(jù)傳輸?shù)剿{(lán)牙接入點(diǎn),。數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)換,成為工業(yè)以太網(wǎng)能夠識(shí)別和支持的格式,,并傳輸?shù)焦I(yè)以太網(wǎng)中的一個(gè)發(fā)出指令請(qǐng)求的設(shè)備中,。上位機(jī)同時(shí)可以通過(guò)以太網(wǎng)對(duì)數(shù)據(jù)進(jìn)行監(jiān)控。工業(yè)現(xiàn)場(chǎng)的無(wú)線設(shè)備還可以同時(shí)與一個(gè)帶有藍(lán)牙模塊的手持設(shè)備和一個(gè)藍(lán)牙接入點(diǎn)進(jìn)行連接,,對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)和采集,。

  5 小結(jié)

  在搭建完整個(gè)系統(tǒng),并對(duì)藍(lán)牙的通信性能進(jìn)行檢測(cè)的過(guò)程中發(fā)現(xiàn),,藍(lán)牙模塊由于采用的是信息無(wú)線傳輸方式,,所以在傳輸過(guò)程中干擾較大,傳輸距離也較短,。工業(yè)現(xiàn)場(chǎng)設(shè)備安裝的環(huán)境往往比較惡劣,,怎樣使藍(lán)牙設(shè)備擁有更好的穩(wěn)定性,、更低的功耗、更廣的工作范圍,,這些對(duì)硬件設(shè)計(jì)和軟件優(yōu)化提出了更高的要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。