国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向車聯(lián)網(wǎng)的IEEE802.15.4協(xié)議兼容射頻芯片的驅(qū)動設計

2012-11-28 03:42歐陽朝兵劉宏宗云鵬
湖北汽車工業(yè)學院學報 2012年1期
關鍵詞:物理層管腳寄存器

歐陽朝兵,劉宏,宗云鵬

(湖北汽車工業(yè)學院 電氣與信息工程學院,湖北十堰442002)

VANET(Vehicular Ad-hoc Network)是一種由在道路上行駛的車輛組成的臨時性的開放式無線自組織網(wǎng)絡,具有自組織、無中心、多跳傳輸以及節(jié)點高速移動等特點。VANET的主要應用方向為交通安全類應用和交通狀況告知類應用。VANET的作用主要是實現(xiàn)將交通安全信息或交通狀況信息快速發(fā)送至一定區(qū)域內(nèi)盡量多的節(jié)點。在VANET體系中車輛間(Vehicle-to-Vehicle)通信占有重要地位,但是至今,支持IEEE 802.11p協(xié)議的硬件系統(tǒng)還較少,不利于此類車載系統(tǒng)的應用及普及。本系統(tǒng)應用IEEE 802.15.4協(xié)議作為車輛間通信標準,對射頻芯片的驅(qū)動進行了分析和設計,此驅(qū)動在基于廣播多跳路由算法中得以應用,實現(xiàn)了車輛間緊急的信息告知與共享。

1 IEEE802.15.4協(xié)議簡介

LR-WPAN(Low-rate Wireless Personal Area Network)網(wǎng)絡是一種結(jié)構(gòu)簡單、成本低廉的無線通信網(wǎng)絡,它使得在低電能和低吞吐量的應用環(huán)境中使用無線連接成為可能。與WLAN相比,LRWPAN網(wǎng)絡需要的基礎設施少,有些情況甚至不需要基礎設施。IEEE802.15.4標準為LR-WPAN網(wǎng)絡制定了物理層和MAC子層協(xié)議[1]。

IEEE802.15.4協(xié)議提供2種物理層的選擇(868/915MHz和2.4GHz),物理層與MAC層的協(xié)作擴大了網(wǎng)絡應用的范疇。這2種物理層都采用直接序列擴頻(DSSS)技術(shù),降低了數(shù)字集成電路的成本,并且都使用相同的包結(jié)構(gòu),以便低作業(yè)周期、低功耗地運作。2.4 G物理層的數(shù)據(jù)傳輸率為250 kb·s-1,868/915 MHz物理層的數(shù)據(jù)傳輸率分別是20 kb·s-1、40 kb·s-1[2]。

IEEE802.15.4MAC層的特征是:聯(lián)合,分離,確認幀傳遞,通道訪問機制,幀確認,保證時隙管理,和信令管理。MAC子層提供2個服務與高層聯(lián)系,即通過2個服務訪問點(SAP)訪問高層。通過MAC通用部分子層SAP(MCPS-SAP)訪問MAC數(shù)據(jù)服務,用MAC層管理實體SAP(MLME-SAP)訪問MAC管理服務。這2個服務為網(wǎng)絡層和物理層提供了一個接口。

2 硬件連接

支持IEEE802.15.4協(xié)議的芯片較多,本協(xié)議選擇ATMEL公司的AT86RF230。AT86RF230芯片是真正的SPI到天線的解決方案,通過SPI和GPIO與CPU連接,使用IRQ中斷使CPU進行異步事件處理。

AT86RF230 通過 SPI接口(MISO、MOSI、SCLK和SEL)進行數(shù)據(jù)交換,同時通過GPIO接口(RST和SLP_TR)控制AT86RF230的工作狀態(tài),通過IRQ管腳將異步事件通知CPU。連接圖[3]如圖1所示。

圖1 AT86RF230與CPU連接圖

AT86RF230使用標準的雙向同步串行總線SPI接口,CPU必須配置為主機模式來讀寫AT86RF230的數(shù)據(jù)。

/RST是低電平有效的控制管腳,用于對AT86RF230芯片的復位,CPU必須把這個管腳配置為輸出,當CPU輸出為低時芯片復位。

SLP_TR是高電平有效的控制管腳,用于對AT86RF230芯片工作狀態(tài)的改變,CPU必須把這個管腳配置為輸出,當CPU輸出為高時AT86RF230根據(jù)自己當前的狀態(tài)進行狀態(tài)轉(zhuǎn)換。

/IRQ管腳是上升沿觸發(fā)的中斷輸入口,當AT86RF230有異步事件發(fā)生時,將產(chǎn)生一個上升沿。CPU必須配置該管腳為高電平輸入狀態(tài)。

3 驅(qū)動的設計與實現(xiàn)

3.1 AT86RF230驅(qū)動的體系結(jié)構(gòu)

根據(jù)IEEE 802.15.4協(xié)議和AT86RF230操作方式,將整個驅(qū)動框架的實現(xiàn)分為讀寫驅(qū)動和MAC操作2個部分。讀寫驅(qū)動主要包括對SPI的初始化和GPIO初始化,并根據(jù)AT86RF230寄存器操作模式,完成對8bit寄存器和子寄存器的讀寫功能。MAC操作主要包括通過對AT86RF230寄存器的操作完成IEEE802.15.4協(xié)議的數(shù)據(jù)幀的發(fā)送和接收。其框架結(jié)構(gòu)如圖2所示。

圖2 驅(qū)動框架結(jié)構(gòu)

在驅(qū)動框架設計中加入了對嵌入式實時操作系統(tǒng)(RTOS)的支持。嵌入式實時操作系統(tǒng)的主要功能就是通過特定算法對任務進行調(diào)度,同時操作系統(tǒng)提供信號量、郵箱、隊列和事件標志組等功能完成任務間的通信與同步。應用操作系統(tǒng)可以將整個軟件系統(tǒng)劃分為多個任務,每個單獨任務處理固定的事件,任務間使用系統(tǒng)服務進行通信。

該驅(qū)動通過配置為無操作系統(tǒng)方式和支持操作系統(tǒng)方式。無操作系統(tǒng)方式中使用的延時和信息監(jiān)測一般通過軟件延時和標志位監(jiān)測實現(xiàn)。支持操作系統(tǒng)方式使用到由操作系統(tǒng)提供的服務,在延時中采用操作系統(tǒng)提供的延時服務,中斷判斷和中斷處理中使用操作系統(tǒng)提供的信號量和郵箱進行各個服務功能的同步與通信。

3.2 AT86RF230硬件驅(qū)動的設計和實現(xiàn)

3.2.1 寄存器的讀寫方式

寄存器的操作包括2種:一種是8 bit寬度寄存器;另一種是只需要操作8 bit寬度寄存器中某幾位數(shù)據(jù)的子寄存器。寫操作大體過程如下:對地址進行mask操作,關閉系統(tǒng)中斷、SPI使能,通過SPI傳送寄存器地址,SPI傳送給寄存器所要賦值內(nèi)容,SPI使能關閉,開啟系統(tǒng)中斷,寄存器的讀取操作與寫寄存器基本類似,從子寄存器讀取回來的數(shù)據(jù)進行mask和移位等操作。

3.2.2 AT86RF230狀態(tài)轉(zhuǎn)換

AT86RF230具有2種狀態(tài)模式:基本運行模式(Basic Operating Mode)和擴展運行模式(Extended Operating Mode)[4]。

AT86RF230 如下狀態(tài):SLEEP、TRX_OFF、PLL_ON、RX_ON、BUSY_RX、BUSY_TX、BUSY_RX_AACK、RX_AACK_ON、TX_ARET_ON、BUSY_TX_ARET等狀態(tài),狀態(tài)之間可以通過設置寄存器TRX_STATE和設置管腳SLP_TR來轉(zhuǎn)換。

通過讀取AT86RF230狀態(tài)寄存器可以獲得其工作狀態(tài),AT86RF230有2組工作狀態(tài):一組包括簡單的收發(fā)狀態(tài),可以直接通過對工作狀態(tài)寄存器的寫入或者通過SLP_TR管腳的狀態(tài)改變而改變;另一組包括所有在AT86RF230進行數(shù)據(jù)收發(fā)或者上電時的臨時狀態(tài)。

3.2.3 AT86RF230初始化

初始化流程圖(圖3)需要初始化CPU的SPI外設、GPIO配置為輸出和上升沿中斷使能。AT86RF230上電后進入P_ON模式,通過CPU對AT86RF230初始化進入收發(fā)關閉(TRX_OFF)模式。

上電后 CPU 需要等待 510 μs[4]使得AT86RF230的PLL工作穩(wěn)定,然后對/RST和SLP_TR管腳進行置低,延時6 μs后釋放/RST管腳。這時AT86RF 230進入工作狀態(tài),輸出AT86RF230的器件編號和版本號。為了防止意外的中斷發(fā)生,在芯片工作之前關閉芯片所有的中斷,并通過讀取中斷狀態(tài)寄存器(IRQ_STATUS)進行檢驗,然后使芯片進入TRX_OFF狀態(tài),完成了芯片的初始化。具體流程圖如圖3所示。

3.2.4 AT86RF230中斷處理

AT86RF230有6種中斷分別為PLL鎖定中斷、PLL失鎖中斷、開始接收中斷、發(fā)送結(jié)束中斷、緩沖超載中斷和低壓報警中斷,中斷使能可以通過往中斷控制寄存器中寫入控制字完成。

圖3 AT86RF230初始化流程圖

系統(tǒng)使用EINT3_IRQHandler中斷入口程序來處理各個中斷,當有中斷發(fā)生時AT86RF230IRQ管腳產(chǎn)生一個上升沿,CPU的中斷處理模塊響應中斷并進入EINT3_IRQHandler中斷處理程序。在中斷處理程序中,首先讀取出中斷寄存器的值以判斷中斷源而進行響應的處理,處理完畢一個中斷后還要判斷有沒有其他中斷需要處理,直到所有中斷都處理完畢。

為了實現(xiàn)對AT86RF230多中斷源的處理,在中斷處理程序中使用了循環(huán)查詢方法,其流程圖如圖4所示。

圖4 多中斷源處理流程圖

3.3 AT86RF230驅(qū)動MAC層操作的設計和實現(xiàn)

3.3.1 數(shù)據(jù)幀的接收與發(fā)送

當AT86RF230接收到幀同步字段后,由原來的RX_ON狀態(tài)轉(zhuǎn)換到BUSY_RX,然后產(chǎn)生接收開始中斷,這時必須等待32 μs再去讀取幀長度,使用幀長度來計算延時時間,延時后讀取數(shù)據(jù)并產(chǎn)生接收完畢中斷,在中斷中讀取緩沖區(qū)數(shù)據(jù)或者進行應答。AT86RF230將BUSY_RX狀態(tài)轉(zhuǎn)換到RX_ON。將保存在數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)通過frame_read函數(shù)進行查詢讀取。

在AT86RF230芯片中定義了2種觸發(fā)信息傳送的方法[4]:寫命令寄存器;SLP_TR管腳產(chǎn)生一個上升沿。在數(shù)據(jù)發(fā)送剛開始,必須保證SLP_TR管腳保持65ns的高電平,用于探測該管腳的上升沿。在發(fā)送數(shù)據(jù)前要讀取AT86RF230寄存器是否處于BUSY_TX狀態(tài),如果是則等待160μs以后再次進行狀態(tài)判斷,否則進行數(shù)據(jù)發(fā)送。將數(shù)據(jù)發(fā)送的功能定義為frame_write函數(shù)向上層提供函數(shù)接口。

3.3.2 數(shù)據(jù)接收與發(fā)送

為了能使用該驅(qū)動進行大數(shù)據(jù)量的收發(fā),在MAC層操作中定義了read和write函數(shù)[5]。

在write函數(shù)中,通過對數(shù)據(jù)的分包,使用frame_write函數(shù)對數(shù)據(jù)進行連續(xù)發(fā)送,實時檢測發(fā)送狀態(tài)記錄錯誤事件返回錯誤事件類型。

read函數(shù)中使用frame_read函數(shù)查詢保存在CPU緩沖區(qū)的數(shù)據(jù),根據(jù)frame_read函數(shù)的返回結(jié)果進行數(shù)據(jù)有效性判斷并進行相應的讀取操作。

數(shù)據(jù)的接收與發(fā)送函數(shù)是本驅(qū)動向應用層提供的接口,應用層任務通過該接口實現(xiàn)對IEEE 802.15.4數(shù)據(jù)包的讀寫。

4 測試與總結(jié)

車輛間的通信方式是基于廣播路由的一種多跳網(wǎng)絡,無線多跳網(wǎng)絡是一種無固定基礎設施的自組織網(wǎng)絡,其特點是無網(wǎng)絡控制中心、多跳路由、網(wǎng)絡自組性、動態(tài)拓撲等。網(wǎng)絡中的每個節(jié)點都可以發(fā)送和接收信號,每個節(jié)點都可以與一個或者多個對等節(jié)點進行直接通信。由于無線信道的鏈路共享、衰落和干擾等特點,在無線多跳網(wǎng)絡中的各協(xié)議層之間存在著相互影響。為了減少鏈路共享、衰落和干擾對通信的影響,在IEEE 802.15.4傳輸中使能了自動重傳和應答等機制。

本驅(qū)動應用于多跳信息的傳輸,測試場景選擇了總長度為415 m的道路上,節(jié)點1發(fā)送,節(jié)點2、3收到后轉(zhuǎn)發(fā),測試場景如圖5所示。根據(jù)各個節(jié)點收到的信息進行解析和判斷,測試系統(tǒng)運行情況,節(jié)點1發(fā)送信息后,節(jié)點4收到的信息如圖6所示。

圖5 測試場景圖

圖6 節(jié)點4收到的信息圖

通過實驗測試表明,該射頻芯片硬件驅(qū)動具有較好的移植性和較好的程序接口。該驅(qū)動信息傳輸速率能夠達到IEEE 802.15.4定義的250 Kb·s-1的最高速率,滿足車輛間緊急信息告知與共享的應用。

[1]IEEE.IEEE Standard for Part 15.4∶Wireless Medium Access Control(MAC)and Physical Layer(PHY)Specifications for Low-Rate Wireless Personal Area Networks(WPANs),IEEE Std 802.15.4[K/OL].(2003-10-01)[2011-10-05].http∶//ieeexplore.ieee.org/ielD/4152702/4152703/04152704.pdf.

[2]李曉維.無線傳感器網(wǎng)絡技術(shù)[M].北京:北京理工大學出版社,2007.

[3]王思山,吳黎兵.基于IEEE 802.15.4的車輛間通信系統(tǒng)硬件設計[J].湖北汽車工業(yè)學院學報,2011,25(1):30-33.

[4]ATMEL.Atmel IEEE802.15.4 Transceiver AT86RF230 Datasheet[K/OL].(2007-12-03)[2011-10-05].http∶//www.atmel.com/dyn/resources/prod_documents/doc5131.pdf.

[5]ATMEL.AVR2009∶AT86RF230 – Software Programming Model[K/OL].(2005-08)[2011-10-05].http∶//www.atmel.com/dyn/resources/prod_documents/doc8099.pdf.

猜你喜歡
物理層管腳寄存器
基于K-ML-MPWFRFT的物理層安全傳輸技術(shù)
STM32和51單片機寄存器映射原理異同分析
Lite寄存器模型的設計與實現(xiàn)
公路聯(lián)網(wǎng)電子不停車收費系統(tǒng)路側(cè)單元物理層自動測試軟件研發(fā)
基于圖像處理的異型電子元器件管腳偏移誤差檢測方法研究
CMOS數(shù)字IC管腳電容的估算與測量
多天線物理層安全傳輸系統(tǒng)性能分析
1Gbps電力線載波通信物理層算法設計
HC08芯片JVT測試方法的探究
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應用