<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于TI Z-STACK的智能小車調(diào)度系統(tǒng)設計

          基于TI Z-STACK的智能小車調(diào)度系統(tǒng)設計

          作者: 時間:2012-09-15 來源:網(wǎng)絡 收藏

          3 軟件
          3.1 協(xié)議棧的無線網(wǎng)絡組建
          3.1.1 無線網(wǎng)絡組建的基本流程
          公司推出的符合ZigBee2006規(guī)范,定義了完全構建在應用層上的操作抽象層(Operation System Abstraction Layer,OSAL層)來隔離Z-STACK協(xié)議棧和特定硬件,采用輪詢及優(yōu)先級控制方式實現(xiàn)任務。在進入應用層任務(Car_Dispatch)處理之前,需首先進行無線網(wǎng)絡的組建。本采用星形網(wǎng)絡拓撲結構,由通信指揮車(協(xié)凋器)負責網(wǎng)絡的發(fā)起。在Z-STACK(ZigBee2006)中,無線網(wǎng)絡組建的基本流程為:
          main()→osal_init_system()→osalInitTasks()→ZDApp_Init(taskID++)→ZDOInitDevice(0)→ZDApp_NetworkInit(extendedDelay)→osal_set_event(ZDAppTaskID,ZDO_NETWORK_INIT)
          通過tasksEvents[ZDAppTaskID] |=ZDO_NETWORK_INIT向ZDAppTaskID任務中添加ZDO_NETWORK_INIT事件(消息),進行網(wǎng)絡初始化,接下來在ZDApp_event_loop中處理ZDO_NETWORK_INIT事件,其過程為:
          ZDApp_event_loop→ZDO_StartDevice
          在該函數(shù)中,協(xié)調(diào)器將通過NLME_NetworkFor-mationReques發(fā)起網(wǎng)絡,執(zhí)行回調(diào)函數(shù)ZDO_NetworkFormationConfirmCB(),向ZDAppTask ID任務發(fā)ZDO_NETWORK_START消息,然后在ZDApp_event_loop中通過osal_set_event(ZDAppTaskID,ZDO_STATE_CHANGE_EVT)向應用層發(fā)ZDO_ STATE_CHANGE_EVT消息,應用層的任務處理函數(shù)根據(jù)ZDO_STATE_CHANGE_EVT判斷無線網(wǎng)的狀態(tài),并確定探路車、運輸車的注冊情況;而路由器和終端節(jié)點將通過NLME_NetworkDiscoveryRequest發(fā)現(xiàn)網(wǎng)絡,并執(zhí)行回調(diào)函數(shù)ZDO_NetworkDiscoveryConfirmCB(),加入?yún)f(xié)調(diào)器組建的無線網(wǎng)絡。
          3.1.2 網(wǎng)絡拓撲與數(shù)據(jù)幀格式
          本系統(tǒng)采用星型網(wǎng)絡拓撲結構,通信指揮車負責系統(tǒng)的調(diào)度。無線網(wǎng)絡上下行鏈路以及各的車載CC2430模塊與51單片機模塊通信的數(shù)據(jù)幀格式如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/159897.htm

          d.JPG


          以探路車為例,它與通信指揮車通信的信息流向如圖4所示。圖中①為Endpoint向Sink注冊;②為51單片機利用傳感器采集路面信息,通過串口發(fā)送到Endpoint;③為Endpoint通過RF方式將數(shù)據(jù)傳輸?shù)絊ink;④為Sink從收到的數(shù)據(jù)中提取信息,分析出路面狀態(tài),然后向Endpoi nt下發(fā)控制指令;⑤為Endpoint從收到的數(shù)據(jù)控制指令后進行處理,然后通過串口向51單片機下發(fā)控制指令;⑥為循環(huán)執(zhí)行①~⑤。

          b.JPG


          3.2 CC2430程序買現(xiàn)
          從圖4可知,CC2430通信模塊的主要功能是完成無線數(shù)據(jù)傳輸和處理串口事件。在處理串口事件上,需首先注冊串口,然后編寫串口處理函數(shù)。串口波特率設置為57 600波特,以滿足使用11.059 2 MHz晶振的單片機模塊與CC2430通信模塊通信。串口注冊由函數(shù)SPIMgr_Regis terTaskID(Car_Dispatch_TaskID)實現(xiàn)。串口接收處理函數(shù)在協(xié)議棧MT層SPIMgr.c中,由uartConfig.callBackFunc=SPIMgr_ProcessZTool Data指明串口接收回調(diào)函數(shù)。為能接收自定義格式的串口數(shù)據(jù),需修改協(xié)議棧自帶的SPIMgr_ProcessZToolData函數(shù),包括在SPIMgr.h中定義圖3中SOP(#define SOP1_VALUE 0x2A),F(xiàn)CS(#defineEND 0x23),在SPIMgr.c中重構數(shù)據(jù)格式,向APP層Car_Dispatch應用程序發(fā)送CMD_ SERIAL_MSG消息等。根據(jù)圖3可知,Endpoint上行傳輸需在第6個字節(jié)發(fā)送數(shù)據(jù)長度LEN-Token,因此在串口數(shù)據(jù)重構中需添加SPI_Msg->msg[5]=LEN_Token,然后在Car_Dispatch應用程序中的SYS_EVENT_MSG消息處理函數(shù)下面,加入處理串口消息代碼:
          e.JPG



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();