亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 無線網絡 > 正文

無線傳感器網絡底層平臺的深層研究

2020-03-15 14:06:01
字體:
來源:轉載
供稿:網友

  無線傳感器網絡應用一般需要無線操作系統的支撐,才能有效地管理和調度資源,提高系統的效率。無線傳感器網絡的底層平臺是連接上層軟件和底層硬件的橋梁,是無線操作系統研究的重要技術之一。合理的底層平臺能夠提高系統的兼容性、穩定性、可移植性和開發效率。本文主要研究了無線傳感器網絡操作系統的底層平臺,對無線模塊、USART、SPI、中斷和定時器進行了詳細介紹。

  目前,對WSN(Wireless Sensor Network)的研究主要集中在協議棧、定位算法、能耗管理以及體系結構設計上,而針對無線傳感網絡操作系統的研究卻相對較少,尤其是對其底層平臺的研究更少,所以針對無線傳感網絡操作系統底層平臺的研究有十分廣闊的空間。本論文針對意法半導體STM32系列MCU和TI公司的CC2520無線模塊進行介紹。主要描述了操作系統底層平臺的構建,以及硬件驅動程序的實現。本論文的底層硬件抽象層是針對CC2520無線射頻模塊的,包括了平臺構建、相關寄存器,以及外圍接口等各個部分。而硬件驅動程序主要是為完成無線通信所需的硬件驅動設計,這主要包括:相應異步事件的中斷機制;和PC通信的USART驅動;連接MCU和CC2520的SPI驅動;完成超時計時的定時器等。這些模塊的有效組成,才能構成一個完整的無線傳感器網絡最小通信系統,完成節點間數據傳輸、數據處理,以及定位和導航等任務。

  STM32系列MCU采用ARM公司V7架構的CortexM3內核。CC2520是第二代ZigBee/IEEE 802.15.4收發器。

  1底層平臺研究

  硬件抽象層[2]的底層硬件模塊有很多,本節只簡單介紹和無線傳感器網絡相關的底層模塊設計。

  1.1定時器

  STM32系列的CPU能提供8個定時器,其中TIM1和TIM8是高級定時器,可用于各種用途,包括測量輸入信號的脈沖長度(輸入捕捉)或產生輸出波形(輸出比較)等,它們的時鐘由APB2提供。TIM2~TIM7是普通定時器,時鐘由APB1提拱。圖1為STM32時鐘樹中有關定時器的部分。

無線傳感器網絡,無線傳感器,無線溫度傳感器,無線傳感器網絡技術

  圖1 STM32中有關定時器的時鐘樹

  從圖1可以看出,從系統設置的時鐘源產生的時鐘頻率輸入到AHB預分頻器,進行分頻處理,然后經過APB1預分頻器和APB2預分頻器給不同模塊提供不同的時鐘頻率。下面以定時器2作為例子說明。當AHB預分頻器輸入頻率為72 MHz的時候,由于APB1支持的最大頻率為36 MHz,所以APB1預分頻器,設置必須大于或等于2,假設設置為2,則在APB1倍頻器中,頻率被設置為72 MHz(當APB1分頻數=1的時候,APB1倍頻器加倍系數為1,當APB1分頻數>1的時候,APB1倍頻器加倍系數為2),所以最終提供給定時器2~7的頻率為72 MHz.所以只需要設置APB1預分頻器和APB1倍頻器的值,便可以提供不同頻率的定時器。定時器采用計數溢出的方式觸發定時器中斷,因此想要使用定時器,必須先配置好定時器中斷。

  1.2中斷

  對STM32系列MCU的中斷配置步驟如下:

 ?、傧到y初始化:如系統時鐘初始化,使用固件模板中自帶的SystemInit()函數即可,此函數把主頻默認調整到72 MHz.

 ?、贕PIO配置:配置觸發CPU中斷的引腳,務必注意打開相應引腳的GPIO時鐘和AFIO時鐘。配置引腳的頻率和輸入模式,一般為浮空輸入模式。

 ?、跡XTI配置:首先指明當前系統中使用哪個引腳作為觸發外部中斷的引腳,然后清除中斷標志位,配置中斷請求和觸發方式(上升沿觸發或下降沿觸發)。

 ?、躈VIC配置:主要配置中斷對應的通道,并且設置優先級別,最后需要對通道使能。

 ?、菥帉懼袛喾粘绦颍褐袛喾粘绦蚴前l生中斷時實際運行的程序,它打斷了正在運行的程序,對相應中斷事件進行相應處理。由于中斷程序打斷了現有程序的運行,而且需要對中斷事件作出快速響應,所以要盡量短小,而且不能傳遞參數,沒有返回值。

  1. 3USART

  USART[3]模塊一般分為三大部分:數據發送器、數據接收器和時鐘發生器。所有模塊共享控制寄存器。時鐘發生器由波特率發生器和同步邏輯電路組成。

  數據發送器部分由寫入緩沖寄存器(USART_DR)、校驗位發生器、串行移位寄存器和控制邏輯電路構成。使用寫入緩沖寄存器,可以連續快速地發送多幀數據。

  數據接收器是USART模塊最復雜的部分,最主要的是數據接收單元和時鐘。數據接收單元用作異步數據的接收。數據接收器還包括移位寄存器、控制邏輯、校驗位校驗器和接收緩沖器。數據接收器支持與數據發送器相同的幀結構,同時支持數據溢出、幀錯誤和校驗錯誤的檢測。

  無線節點可以通過USART與PC通信。本文只實現了簡單的USART功能。串口使用前需要完成初始化,主要設置字長、波特率、奇偶校驗位、傳輸模式、數據位數、流控制、打開串口時鐘和配置串口發送接收引腳等。

  有了串口的輸入/輸出功能后,可以自己重寫庫函數printf,便于調試和觀察節點運行情況,讓節點終端輸出重定向到PC,然后在PC上通過串口工具顯示節點發送過來的數據信息,從而分析終端運行情況。具體函數設計是:如果節點輸出字符串數據,則直接調用串口輸出字符串函數,通過串口把字符串數據發送到PC顯示;如果是輸出數字,則先把數字按指定顯示進制轉換成字符串,然后按照輸出字符串方式處理??梢灾貙慽toa()函數,把輸入的數字按照任意進制保存到字符串中。

  1.4 SPI

  SPI[4]有三種寄存器:控制寄存器(SPI_CR)、狀態寄存器(SPI_SR)、數據寄存器(SPI _DR)。SPI接口包括4種信號:MOSI——從器件數據輸入,主器件數據輸出;MISO——從器件數據輸出,主器件數據輸入;SCLK——時鐘信號,由主器件產生;NSS——從器件選擇使能信號,由主器件控制,有的芯片廠家會標注為CS(Chip Select)。

  由于無線模塊CC2520必須通過SPI接口才能和MCU通信,所以必須先實現SPI接口,才能控制CC2520接收和發送數據。SPI接口的處理方式和USART接口的處理方式很像,本文只實現了簡單的SPI功能。SPI使用前必須初始化,主要工作包括設置主從模式、波特率、數據位數、數據幀格式、配置輸入/輸出引腳和時鐘信號的相位和極性等。

  1.5 CC2520驅動

  MCU通過SPI接口控制CC2520啟動、關閉、收發數據等。SPI接口由SI、SO、CSn和SCLK四個引腳構成。在MCU和CC2520通信過程中,CC2520為SPI接口從設備,接收MCU發來的時鐘信號和片選信號,并在MCU的控制下執行發送數據、接收數據等操作;STM32為接口主設備,可以通過SPI接口訪問CC2520內部存儲區和寄存器。CC2520通過FIFO、FIFOP、SFD和CCA四個引腳來表示工作狀態。MCU可以通過讀取這些引腳的數據來獲得CC2520收發數據的狀態。SFD信號表示剛接收到或者剛發送完幀開始信號;FIFO信號表示一個或者多個字節在接收緩沖區;FIFOP信號表示接收緩沖區中的字節數超出設置的門限或者接收到至少一幀完整的數據;CCA信號表示信道空閑。

  CC2520大概工作流程:首先是準備工作。上層應用程序中使用halRfInit()函數完成CC2520的一些初始化工作,如復位CC2520,關閉電壓調整器,根據CC2520數據手冊需要延時1100μs.延時完成后,開啟電壓調整器,再延時200μs,然后使能CC2520,完成后,申請SPI資源并初始化。開啟振蕩器,然后通過SPI接口配置CC2520中一些寄存器的默認值,如TXPOWER、CCACTRL0、MAMCTRL0、MAMCTRL1等寄存器的值。然后對MCU和CC2520相連的引腳進行初始配置,比如把RSTN、VREN和CSN配置為輸出模式,把FIFO、FIFOP、CCA和SFD配置為輸入模式。

  上層應用程序中使用basicRfInit()函數完成對信道、短地址和網絡ID的設置,并配置接收中斷處理函數,用于接收到數據產生中斷時處理接收數據。

  應用程序執行發送命令時,按照協議棧從上層一層層封裝好數據后,最終把數據交給basicRfSendPacket()函數處理。具體發送過程如圖2所示。

無線傳感器網絡,無線傳感器,無線溫度傳感器,無線傳感器網絡技術

  圖2 CC2520發送數據流程圖

  圖中封裝的格式按照協議要求,內容主要包括數據長度、幀控制域(FCF)、目的地址、源地址、目的網絡ID、源網絡ID、發送數據、CRC(Cyclic Redundancy Check)校驗碼等。當采用的是硬件CRC檢驗時,不需要用戶計算添加CRC檢驗碼,也不需要CRC檢驗數據寫入TXFIFO(CC2520發送緩沖區)中,有專門的寄存器存儲CRC檢驗數據,由硬件完成檢驗和發送。當采用軟件CRC檢驗時,需要用戶自己計算CRC檢驗數據,并填寫在幀的最后兩字節中,隨幀中其他數據一起寫入TXFIFO.

  封裝好后把數據寫入TXFIFO中,注意CC2520發送緩沖區為128字節,不能超出這個范圍,否則會引發TX_OVERFLOW異常。然后,打開接收數據中斷后才能調用發送命令發送數據,在這里可以對發送過程進行完全的控制,比如在發送數據的過程中,可以通過捕獲SFD引腳的上升沿信號來對發送準確計時。發送數據后等待接收方回復ACK,如果在規定時間內沒有收到ACK,則判定重傳次數是否超過最大重傳次數,沒有的話則按照一定策略退避一段時間后再重新發送這個數據包,如果超過最大重傳次數則丟棄這個包,并設置發送失敗標志供上層程序參考。如果在規定時間內收到ACK,則會觸發RX_FRM_DONE中斷,會調用basicRfRxFrmDoneIsr()接收數據中斷處理程序對收到的ACK包進行分析,如果是對剛發送包的正確回復,則表示發送成功,更新相應信息,例如發送序列號加1,更新發送狀態,清除TX_FRM_DONE異常等。

  接收過程和發送過程類似,具體接收流程如圖3所示。

無線傳感器網絡,無線傳感器,無線溫度傳感器,無線傳感器網絡技術

  圖3 CC2520接收數據流程圖

  2測試

  2.1測試方法

  測試的每個節點都通過一根串口線連接到PC.在測試程序中添加測試代碼,把測試節點發送和接收的MAC(Media Access Control)層數據信息通過串口發送到PC上。然后通過PC上的串口調試助手顯示出來。對這些數據信息進行分析便可以知道節點上各模塊程序的運行情況。

  2.2測試過程及結果

  通過分析群首節點廣播數據幀到群中終端節點的過程來判斷底層模塊的運行情況。群首節點A和群中終端節點(B、C、D)都通過串口線連接到PC上。群網絡號為0x0001,節點A、B、C、D地址分別為:0x0001、0x0002、0x0003、0x0004.A通過無線模塊發送廣播數據到B、C、D,并把發送數據發送到PC顯示,最后把接收到的ACK回復幀也發送到PC顯示;B、C、D通過無線模塊接收到A發過來的數據,按自己節點地址大小進行延時后對接收數據幀進行回復,并把接收數據幀和回復ACK幀通過串口發送到PC顯示。

  圖4為群首節點發送數據幀和接收ACK幀的過程。協議棧MAC層幀的封裝格式按照IEEE 802.15.4[5]標準。從圖4可以看出:第一個框中為發送節點發送數據幀,后面三個框中為接收到的終端節點回復的ACK幀。按照IEEE Std 802.15.42006標準中的幀封裝格式,發送窗口顯示的第一個字節為物理層數據長度。后面緊跟的是FCF(Frame Control Field幀控制字段,占2字節),對發送可信廣播數據幀為0x8801.參考標準手冊中FCF設置,可以看出對數據幀的設置如下:節點地址和網絡地址都采用16位;在幀中同時包括源網絡ID、源節點地址、目的網絡ID、目的節點地址;需要ACK幀確認;沒有采用安全設置。后面是DSN(1字節),這是傳輸的第一個幀,所以設置為0x01.后面為目的網號0x0001(占2字節)。后面為目的節點地址0xFFFF(占2字節),這是廣播地址,當CC2520發現目的節點地址為廣播地址時,便向所有節點傳輸廣播幀。后面為源網絡號0x0001(占2字節)。后面為源節點地址0x0001(占2字節)。因為這是同一個網段中的群首向終端節點發送廣播幀,所以目的網絡號和源網絡號相同。后面接著的2字節為MAC層數據,為了測試簡單,測試時只發送了2字節的數據(1和2,ASCALL碼為0x31和0x32)??尚艔V播幀要求接收節點回復ACK幀,后面三個框中數據分別是節點B、C、D回復的ACK幀。回復幀的格式和數據幀的設置情況類似,區別是回復幀的FCF為0x8802,表示是回復幀且不需要確認,回復幀中沒有數據字段,且回復幀中的目的網絡號、目的地址為接收數據幀中的源網絡號、源地址。

無線傳感器網絡,無線傳感器,無線溫度傳感器,無線傳感器網絡技術

  圖4群首廣播發送節點串口顯示圖

  圖5為接收節點B的接收數據幀。從圖中可以看出,第一個框中為接收到的可信廣播數據幀,第二框中數據為發送的ACK幀。接收窗口中前面的數據和發送窗口中數據一樣。不一樣的是最后的2字節(具體解釋請參考3.5節CC2520接收過程)。接收節點解析目的地址,發現是廣播地址,需要再檢查FCF字段中的Ack Request是否為1,如果為1,則需要回復ACK幀。為了避免群中節點收到可信廣播數據幀,同時回復ACK幀造成信道碰撞,回復ACK幀的時候按照自己節點地址大小延時發送。群中其他節點(C、D)的接收串口顯示數據和節點B的類似,這里就不再詳細說明。

無線傳感器網絡,無線傳感器,無線溫度傳感器,無線傳感器網絡技術

  圖5可信廣播接收節點B串口顯示圖

  從測試的結果看,發送節點通過CC2520發送的數據能被接收,節點正確接收并通過串口發送到PC.這說明論文介紹的各個模塊都能夠正確穩定地工作。通過這些底層模塊的協同工作,為上層操作系統和協議棧提供了通信的基礎服務。本論文只是簡單地完成了各模塊的功能,還有很多可以改進的地方,比如,可以在CC2520通信過程中加入精確的時序控制,為上層提供更好的服務。

  以上就是基于無線傳感器網絡操作系統底層平臺及內存管理的研究,希望能幫到大家,謝謝閱讀。


注:相關教程知識閱讀請移步到網絡基礎知識頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区中文字幕在线观看| 在线成人一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 91a在线视频| 精品视频偷偷看在线观看| 亚洲春色另类小说| 国产日韩在线播放| 色综合视频一区中文字幕| 日本三级久久久| 欧美大奶子在线| 久久久久久久色| 96精品视频在线| 在线观看久久久久久| 亚洲最大av网| 日韩欧美亚洲国产一区| 国外色69视频在线观看| 亚洲xxxx做受欧美| 国产精品观看在线亚洲人成网| 欧美激情成人在线视频| 亚洲精品wwww| 国产精品ⅴa在线观看h| 亚洲精品久久久久久下一站| 欧美性受xxxx白人性爽| 日韩毛片在线观看| 黑人巨大精品欧美一区二区免费| 日韩中文字幕在线精品| 欧美伊久线香蕉线新在线| 97国产一区二区精品久久呦| 国产日韩中文在线| 国内偷自视频区视频综合| 亚洲电影天堂av| 日韩中文字幕视频在线观看| 在线观看欧美日韩国产| 欧美亚洲另类激情另类| 狠狠久久亚洲欧美专区| 日韩精品亚洲视频| 美女啪啪无遮挡免费久久网站| 精品丝袜一区二区三区| 国产美女久久精品| 黑人巨大精品欧美一区二区免费| 国产精品高潮呻吟视频| 亚洲二区中文字幕| 国产欧美在线观看| 综合网日日天干夜夜久久| 国产亚洲日本欧美韩国| 国产中文字幕日韩| 欧美精品久久久久久久久久| 国产精品第三页| 国自在线精品视频| 中文字幕精品国产| 91影院在线免费观看视频| 欧美自拍大量在线观看| 国产成人精品a视频一区www| 亚洲级视频在线观看免费1级| 国产精品视频精品视频| 亚洲精品按摩视频| 97在线观看免费| 欧美日韩国产色视频| 亚洲国产日韩精品在线| 久久成人人人人精品欧| 97涩涩爰在线观看亚洲| 97人洗澡人人免费公开视频碰碰碰| 成人午夜一级二级三级| 成人国内精品久久久久一区| 久久久av电影| 国产精品久久久久久久久久ktv| 欧美日韩一区二区三区| 91系列在线观看| 色综合久久天天综线观看| 57pao国产精品一区| 久久色精品视频| 日韩av综合网| 亚洲第一页自拍| 91免费看国产| 97香蕉超级碰碰久久免费的优势| 色噜噜国产精品视频一区二区| 欧美性猛交xxxx久久久| 日本视频久久久| 98精品国产自产在线观看| 欧美高清不卡在线| 国产午夜精品全部视频在线播放| 亚洲综合色激情五月| 伊人av综合网| 欧美性在线视频| 久久精品国产久精国产一老狼| 亚洲国产又黄又爽女人高潮的| 欧美精品一本久久男人的天堂| 欧美激情久久久久久| 亚洲午夜色婷婷在线| 最新91在线视频| 日韩av电影手机在线观看| 中文字幕久久久av一区| 亚洲综合在线中文字幕| 国产午夜精品免费一区二区三区| 国产成人精品av在线| 久久频这里精品99香蕉| 亚洲天堂av电影| 性欧美激情精品| 国产精品免费在线免费| 亚洲人成网站免费播放| 日韩电影免费观看在线| 欧美成人一区二区三区电影| 国产精品一区二区三区久久久| 亚洲欧美日韩天堂| 亚洲国产毛片完整版| 一区二区三区四区精品| 久久久久久久久91| 欧美xxxx做受欧美| 日韩中文字幕在线观看| 97视频免费观看| www国产精品视频| 成人国产精品av| 久久中文字幕一区| 精品福利在线观看| 国产精品久久国产精品99gif| 亚洲高清免费观看高清完整版| 美女视频久久黄| 日韩在线www| 亚洲天堂av女优| 亚洲小视频在线观看| 国产精品福利片| 黑人巨大精品欧美一区二区一视频| 国产精品直播网红| 日韩精品一区二区三区第95| 久久久亚洲网站| 久久九九国产精品怡红院| 国产成人久久久| 成人伊人精品色xxxx视频| 国产精品久久久久久久久久| 中文字幕av一区中文字幕天堂| 欧美又大又粗又长| 亚洲国产精品99久久| 亚洲一区二区久久久久久久| 日韩中文字幕在线精品| 国产视频久久久久久久| 国产乱人伦真实精品视频| 欧美猛交免费看| 国产在线精品一区免费香蕉| 色婷婷**av毛片一区| 欧美色欧美亚洲高清在线视频| 国产精品久久久久久久一区探花| 国产精品久久不能| 精品久久久久人成| 欧美电影《睫毛膏》| 成人免费观看a| 欧美激情乱人伦| 欧洲午夜精品久久久| 亚洲欧美激情精品一区二区| 久久精品国产清自在天天线| 欧美日韩亚洲一区二区| 国产视频精品va久久久久久| 亚洲精品综合精品自拍| 欧美在线www| 国产亚洲欧美一区| 日韩中文字幕网址| 一区二区三区视频免费在线观看| 亚州国产精品久久久| 国产精品成人一区| 91影院在线免费观看视频| 夜夜躁日日躁狠狠久久88av| 欧美高清videos高潮hd| 久久人人爽人人| 日韩成人在线免费观看| 精品一区二区三区电影|