基于ARM7的藍(lán)牙接入點(diǎn)的硬件系統(tǒng)結(jié)構(gòu)和軟件流程
3.1.2 FLASH存儲器 SST36VF160
由于該系統(tǒng)是應(yīng)用與工業(yè)現(xiàn)場以太網(wǎng)中,在軟件中必須加入相應(yīng)的以太網(wǎng)規(guī)范標(biāo)準(zhǔn),所以在系統(tǒng)設(shè)計中,在 cpu的外部拓展了 2M字節(jié)的 FLASH。SST39VF160是一個 1M×16的 CMOS多功能 FLASH器件,由 SST特有的高性能的 SupeRFlash技術(shù)制造而成。 SST39VF160功耗較低,工作電壓為 3.3V,具有高性能的編程功能,字編程時間為 14us。基于 SST39F160的這些優(yōu)點(diǎn)選用這款 FLASH,在實(shí)踐中證明這款 FLASH能夠更方便和更低成本的滿足程序配置和數(shù)據(jù)存儲的要求。
3.1.3 藍(lán)牙模塊 BCM04是滿足自適應(yīng)的可進(jìn)行數(shù)據(jù)交換和語音通信的藍(lán)牙通信模塊。其體積小,為 17.5×15.0×2.3mm;工
作電壓為 1.8V,功耗較低;以 UART為主接口,另有語音接口、 SPI接口、 PIO口等,其結(jié)構(gòu)框圖如圖 2所示; BCM04內(nèi)部集成了 16Kbits的 EEPROM和 4Mbits的 FLASH/ROM,具有豐富的存儲器資源。
在設(shè)計中,使用了藍(lán)牙模塊的 UART口和微處理器 AT91R40008的串口 1相連,通過藍(lán)牙模塊向工業(yè)現(xiàn)場的無線設(shè)備發(fā)送和接收數(shù)據(jù),在由 cpu,經(jīng)工業(yè)以太網(wǎng)將數(shù)據(jù)傳送到上位機(jī)中,實(shí)現(xiàn)上位機(jī)對藍(lán)牙設(shè)備的訪問與監(jiān)控。
3.1.4 網(wǎng)絡(luò)通信接口在設(shè)計中采用采用網(wǎng)絡(luò)接口將藍(lán)牙接入點(diǎn)接入工業(yè)以太網(wǎng),數(shù)據(jù)由以太網(wǎng)傳遞到上位機(jī)中,實(shí)現(xiàn)工業(yè)現(xiàn)場的無線設(shè)備和上位機(jī)的通信。網(wǎng)絡(luò)隔離器采用的是 HR61H50L,網(wǎng)卡芯片使用的是 AX88796。
AX88796是臺灣 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ì)無關(guān)接口 MII(Media Independent Interface),用以支持在其它媒質(zhì)上的應(yīng)用。 AX88796的地址總線 SA[9:0]與數(shù)據(jù)總線 SD[15:0]分別與 CPU的地址/數(shù)據(jù)總線相連。 CPU通過 I/O讀寫 NE2000寄存器來控制 AX88796的工作狀態(tài),通過遠(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)過 MII接口送至外部的物理層芯片。SEEPROM接口可以用來連接串行 EEPROM。EEPROM可用于存儲 MAC地址,供 AX88796每次初始化時讀取。
3.1.5 電源部分
電源采用的是以太網(wǎng)供電設(shè)備,該設(shè)備采用符合 802.3受電設(shè)備標(biāo)準(zhǔn),輸出標(biāo)準(zhǔn)的 +24V,經(jīng)過 LM2576-5、 AS1117-1.8和 AS1117-3.3電源芯片,電平轉(zhuǎn)換后,輸出藍(lán)牙接入點(diǎn)上的 cpu、存儲器、網(wǎng)卡芯片和藍(lán)牙模塊上所需的 1.8V和 3.3V電源。
3.1.6 串口通信
串口通信使用的是 MAX3232芯片。這里使用串口通信接口主要是為了調(diào)試藍(lán)牙模塊、 cpu和上位機(jī)之間的通信,及測試其通信性能。
3.2 軟件部分
在軟件設(shè)計部分,主要介紹一下藍(lán)牙模塊的通信原理。首先,初始化藍(lán)牙模塊,直到初始化成功。接著對通信模塊的各個端口進(jìn)行定義。AT91R40008有 32位的 I/O口,設(shè)計時結(jié)合實(shí)際中的情況,考慮具體所用的端口,結(jié)合其他通信模塊定義這些端口。定義通信模塊端口完成以后,立即與現(xiàn)場無線設(shè)備進(jìn)行連接。隨后,藍(lán)牙接入點(diǎn)開始搜索現(xiàn)場設(shè)備,并對現(xiàn)場設(shè)備進(jìn)行讀寫,接收藍(lán)牙指令并更新。其藍(lán)牙模塊的通信流程圖如圖 3。
評論