《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于ARM7的藍(lán)牙接入點(diǎn)的設(shè)計(jì)與應(yīng)用
基于ARM7的藍(lán)牙接入點(diǎn)的設(shè)計(jì)與應(yīng)用
來(lái)源:中電網(wǎng)
摘要: 在工業(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)牙模塊開發(fā)了基于藍(lán)牙通信的工業(yè)接入點(diǎn),,組建了基于藍(lán)牙通信的閥門,、流量計(jì)、溫度變送器測(cè)試系統(tǒng),,實(shí)現(xiàn)了帶有藍(lán)牙通信模塊的工業(yè)設(shè)備和現(xiàn)有的有線網(wǎng)路的通信,。
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)牙模塊開發(fā)了基于藍(lán)牙通信的工業(yè)接入點(diǎn),組建了基于藍(lá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ō)明。

<a class=ARM7" src="http://files.chinaaet.com/images/2013/03/22/7766775285853.jpg" style="width: 600px; height: 491px; " />

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)牙模塊的讀寫等,。

系統(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ǔ)已夠用了,所以在外部沒有進(jìn)行 RAM的擴(kuò)展。網(wǎng)卡芯片 AX88796通過(guò)片選線,、中斷線,、讀寫信號(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ǔ)器資源,。

ARM7

在設(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è)備的訪問與監(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公司推出的 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讀寫 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)開始搜索現(xiàn)場(chǎng)設(shè)備,,并對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行讀寫,,接收藍(lán)牙指令并更新。其藍(lán)牙模塊的通信流程圖如圖 3。

ARM7

藍(lán)牙接入點(diǎn)向本地子網(wǎng)廣播自己的設(shè)備聲明,,并接收其他設(shè)備的設(shè)備聲明,。初始化完后 5秒鐘內(nèi)用來(lái)搜尋子網(wǎng)中的鄰居設(shè)備,搜尋完成后,,開始建立鄰居表,,并把鄰居表內(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)行訪問和采集,。

ARM7

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)載,。