基于ARM7的藍牙接入點的硬件系統(tǒng)結(jié)構(gòu)和軟件流程
藍牙接入點向本地子網(wǎng)廣播自己的設(shè)備聲明,并接收其他設(shè)備的設(shè)備聲明。初始化完后 5秒鐘內(nèi)用來搜尋子網(wǎng)中的鄰居設(shè)備,搜尋完成后,開始建立鄰居表,并把鄰居表內(nèi)的其他從設(shè)備加入到無線調(diào)度列表中。網(wǎng)絡組建完成后,接入點按照確定性調(diào)度算法輪詢從設(shè)備。并把藍牙數(shù)據(jù)報文轉(zhuǎn)換成工業(yè)以太網(wǎng)的報文,放入工業(yè)
以太網(wǎng)的調(diào)度器中。設(shè)備聲明報文:
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]; // 設(shè)備描述, 字符串 //主 or從? 0主設(shè)備; 1 從設(shè)備 //設(shè)備狀態(tài): 0設(shè)備未組態(tài) , 自由發(fā)包; //1設(shè)備已組態(tài) , 獲取令牌才能發(fā)包 // 保留字段
// 設(shè)備描述, 字符串 // 信息分發(fā)的內(nèi)容
//確認? 0不確認 ; 1確認 // 保留信息
} zgb_pass_token;
在設(shè)計中,將工業(yè)以太網(wǎng)的有線網(wǎng)絡與工業(yè)現(xiàn)場的無線設(shè)備之間建立連接,如圖 4。工業(yè)現(xiàn)場的無線設(shè)備通過一個藍牙專用的傳輸協(xié)議將數(shù)據(jù)傳輸?shù)剿{牙接入點。數(shù)據(jù)經(jīng)過轉(zhuǎn)換,成為工業(yè)以太網(wǎng)能夠識別和支持的格式,并傳輸?shù)焦I(yè)以太網(wǎng)中的一個發(fā)出指令請求的設(shè)備中。上位機同時可以通過以太網(wǎng)對數(shù)據(jù)進行監(jiān)控。工業(yè)現(xiàn)場的無線設(shè)備還可以同時與一個帶有藍牙模塊的手持設(shè)備和一個藍牙接入點進行連接,對數(shù)據(jù)進行訪問和采集。
5 小結(jié)
在搭建完整個系統(tǒng),并對藍牙的通信性能進行檢測的過程中發(fā)現(xiàn),藍牙模塊由于采用的是信息無線傳輸方式,所以在傳輸過程中干擾較大,傳輸距離也較短。工業(yè)現(xiàn)場設(shè)備安裝的環(huán)境往往比較惡劣,怎樣使藍牙設(shè)備擁有更好的穩(wěn)定性、更低的功耗、更廣的工作范圍,這些對硬件設(shè)計和軟件優(yōu)化提出了更高的要求。
評論