<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于TI Z-STACK的智能小車(chē)調度系統設計

基于TI Z-STACK的智能小車(chē)調度系統設計

作者: 時(shí)間:2012-09-15 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/159897.htm

d.JPG


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

b.JPG


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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>