a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 消費電子 > 設計應用 > 基于掌上終端的藍牙微微網無線數據采集控制系統

基于掌上終端的藍牙微微網無線數據采集控制系統

作者: 時間:2010-07-30 來源:網絡 收藏

2.3智能控制系統
代替 PC機、筆記本電腦、工控機等作為現場系統的上位機,是現場與控制中心及數據接收中心,主要任務包括:器管理及傳感器校正、數據采集器參數設置、數據采集控制、數據接收、實時顯示與數據存儲、回放。
智能內嵌的模塊,調用相應的協議棧庫函數即可完成的相關操作。數據采集器管理模塊負責設備查找與設備安全認證;采集參數攝制及控制模塊向采集器發送工作控制命令;數據接收模塊實時接收采集器數據并提供圖形化顯示;實時采集的數據按照約定格式存放在指定文件中,并根據需要提供歷史數據回放。
2.4藍牙數據通信


藍牙是一種短距離低功耗無線傳輸技術,工作于 2.4GHz的 ISM頻段[2]。藍牙通信協議棧分為四層,其中核心層為基帶協議層( BaseBand)鏈路管理協議( LMP)、邏輯鏈接控制和適配協議( L2CAP)以及服務發現協議( SDP),核心層之上為電纜替代協議(RFCOMM)與電話傳送控制協議( TCS-Binary)[2]。本系統藍牙無線傳輸工作在 RFCOMM協議上,利用 Serial Port Profile將藍牙設備虛擬成串口設備,數據的傳輸操作與串口操作相同,開發方便。

本文引用地址:http://www.j9360.com/article/166660.htm

3掌上的工作流程
掌上的主要功能包括采集參數設置、采集器系統自檢、傳感器校正、采集控制以及數據回顯。參數設置模塊設置采樣間隔、保存文件路徑、工程信息等參數;采集器系統自檢模塊以預采集的方式啟動采集器,檢測整個系統軟硬件工作狀態;傳感器校正模塊實現各傳感器的零漂糾正及系數率定;采集控制模塊控制采集器的數據采樣啟動與結束,接收并處理數據,完成數據的實時顯示及保存;數據回顯模塊從文件讀取歷史數據并顯示。

4 主要功能實現
4.1數據幀藍牙數據通信中,命令幀結構與數據幀的約定如下:命令幀由兩位命令標識、四位命令參數和兩位結束符組成,如 IT0001ZZ,IT代表設置采樣間隔命令, 0001約定為采樣間隔為 0.01ms,ZZ為統一結束符。數據幀由兩位機器識別碼、兩位數據和兩位結束符組成,如 A1HLZZ;其中 H表示 16進制數據的高位 ,L代表低位。
每次采集傳輸數據時,終端無間隔采集并傳送 5組數據,在掌上控制終端進行中值濾波,以減小誤差。
4.2藍牙設備發現與連接實現
4.2.1 微軟協議棧的藍牙傳輸實現微軟的藍牙驅動,開發簡單。通過使用 Socket實現通信連接。

發現設備需要用到三個 Winsock的 API,分別是 WSALookupServiceBegin、 WSALookupServiceNext和 WSALookupServiceEnd。頭文件為 Winsock2.h,庫文件為 Ws2_32.lib。
使用 Socket設備發現的代碼如下: WSALookupServiceBegin (querySet, LUP_CONTAINERS, hLookup); WSALookupServiceNext (hLookup, flags, dwSize, pwsaResults) WSALookupServiceEnd(hLookup);利用 pwsaResults返回的藍牙物理地址與 GUID做為 socket連接參數,可與目的設備
進行連接。代碼如下:
SOCKET m_socketClient = socket (AF_BT, SOCK_STREAM,
BTHPROTO_RFCOMM); connect (m_socketClient, (SOCKADDR *)sa, sizeof(sa))進行設備連接。連接成功后,可用下列代碼進行數據收發:
recv(p->m_socketClient,buf,1024,0); send (m_socketClient, (char *)buf, nSize, 0);
4.2.2 基于 widcomm協議棧的藍牙傳輸實現使用如下語句啟動查詢:
StartInquiry();
Void OnDeviceResponded (BD_ADDR bda, DEV_CLASS devClass, BD_NAME bdName, BOOL bConnected)
bda為返回設備地址, bdName為返回設備名稱。當查詢時間結束時,響應查詢定時器函數,開啟服務查找線程:
StartDiscovery(m_BdAddr, m_pServiceGuid) ;
Widcomm提供了各種協議的不同連接方式,基于 RFCOMM協議的 SPP連接代碼如下:
CSppClient::CreateConnection(m_BdAddr,m_serviceName);
當設備連接成功,可以返回相關狀態:
Void OnClientStateChange(BD_ADDR bda, DEV_CLASS dev_class, BD_NAME name, short com_port, SPP_STATE_CODE state)
使用函數返回的 com_port為串口號建立串口操作
CreateFile (buff, GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0, NULL )。



評論


相關推薦

技術專區

關閉