在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > STM32和CC2520的TinyOS移植與驅(qū)動(dòng)分析

            STM32和CC2520的TinyOS移植與驅(qū)動(dòng)分析

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

            3. 1.2 修改I/O、LED燈、Timer、USART、SPI組件
            (1)通用I/O接口
            HIL層組件通過(guò)3個(gè)接口描述MCU可以控制的通用輸入輸出引腳。General I/O接口描述輸入輸出引腳被清零或置位狀態(tài)、設(shè)置為輸入或輸出模式。GpioInterrupt接口描述單個(gè)引腳觸發(fā)的中斷,可以對(duì)每一個(gè)引腳分別配置為上升沿觸發(fā)或者下降沿觸發(fā)中斷。GpioCapture接口描述捕獲單個(gè)引腳發(fā)生的事件,可以對(duì)每一個(gè)引腳分別配置為上升沿觸發(fā)或者下降沿觸發(fā)。
            (2)LED燈
            最多可獨(dú)立支持平臺(tái)上3個(gè)LED燈。通過(guò)PlatformLedsC組件直接訪問(wèn)3個(gè)LED燈,LedC和LedP組件再通過(guò)裝配PlatformLedsC組件,向上層組件提供Led接口,相當(dāng)于General I/O接口的使用。在PlatformLedsC組件中,可以對(duì)每種開(kāi)發(fā)板指定相應(yīng)的LED引腳。
            (3)Timer
            MCU時(shí)鐘通常有3種常見(jiàn)的功能:控制、時(shí)鐘/計(jì)數(shù)器、觸發(fā)。將與MCU時(shí)鐘相關(guān)的文件放到chips//timer。時(shí)鐘的通用功能通過(guò)一系列的接口定義實(shí)現(xiàn):
            d.JPG
            (4)USART
            節(jié)點(diǎn)可以通過(guò)USART與PC通信,將與USART相關(guān)文件放于chips//uart。本文只通過(guò)HplUartNoDmaP組件的STM32Uart1C配件實(shí)現(xiàn)了簡(jiǎn)單的USART功能。串口的初始化包括:波特率、字長(zhǎng)、奇偶校驗(yàn)位、流控制、打開(kāi)串口時(shí)鐘和配置串口發(fā)送接收引腳等。
            (5)SPI
            由于通過(guò)SPI接口和MCU通信,所以必須實(shí)現(xiàn)SPI接口。SPI的初始化包括:時(shí)鐘信號(hào)的相位和極性、NSS模式、數(shù)據(jù)幀格式、主從模式等。
            3.2
            在tos/chips/cc2520中,定義與芯片相關(guān)的組件,這里面的組件直接對(duì)芯片進(jìn)行操作。在tos/platforms/cc2520文件夾中定義CC2520和MCU交互的接口。CC2520通過(guò)SPI接口與STM32完成設(shè)置和收發(fā)數(shù)據(jù)兩方面的任務(wù)。
            CC2520工作流程如下:應(yīng)用程序中使用SplitControl接口,該接口最終連接到CCDriverLayerP上,在SoftwareInit.init中對(duì)CC2520使用的和MCU相連的引腳進(jìn)行初始配置。
            首先,復(fù)位CC2520,并且關(guān)閉電壓調(diào)整器,根據(jù)Datasheet,延時(shí)1100 μs,延時(shí)通過(guò)接口BusyWaitT32khz,uint16_t>。延時(shí)完成后,開(kāi)啟電壓調(diào)整器,并延時(shí)200μs后使能CC2520。完成后,申請(qǐng)SPI資源,該資源接口連接在CC2520DriverLayerP上,資源申請(qǐng)?jiān)试S后,在CC25 20DriverLayerP中捕獲到SpiResource.granted事件,然后開(kāi)始通過(guò)SPI接口初始化CC2520,調(diào)用startOscillator。之后,調(diào)用initRadio對(duì)CC2520的寄存器進(jìn)行相應(yīng)配置。
            而在接收模式時(shí),CC2520收到物理幀的SFD字段后,會(huì)在SFD引腳輸出高電平,直到接收完該幀。如果啟用了地址識(shí)別,在地址識(shí)別后,SFD引腳立即轉(zhuǎn)為輸出低電平。FIFO和FIFOP引腳標(biāo)識(shí)FIFO緩存區(qū)的狀態(tài)。如果接收FIFO緩存區(qū)有數(shù)據(jù),F(xiàn)IFO引腳輸出高電平;如果接收FIFO緩沖區(qū)為空,F(xiàn)IFO引腳輸出低電平。無(wú)線模塊組織架構(gòu)圖如圖2所示。

            本文引用地址:http://www.biyoush.com/article/159652.htm

            e.JPG


            3.3 修改平臺(tái)文件
            在tos/platforms下放置平臺(tái)相關(guān)文件,將物理相關(guān)的組件連接起來(lái)組成具體平臺(tái)。創(chuàng)建一個(gè)平臺(tái)需要完成5個(gè)部分:
            ①“.platform”文件告知編譯系統(tǒng)文件的位置,由一系列的包含路徑和NesC的參數(shù)組成。ncc將“.platform”文件當(dāng)作perl腳本讀出,并將參數(shù)傳遞到NesC預(yù)編譯器。
            ②平臺(tái)導(dǎo)入程序PlatformP/PlatformC,通過(guò)調(diào)用兩個(gè)初始化接口platformC.Init和MainC.softwarelnit來(lái)激活MCU、傳感器和射頻等硬件模塊及相關(guān)軟件。platformC.Init通常完成時(shí)鐘校準(zhǔn)和引腳設(shè)置,保證硬件在可操作狀態(tài)。
            ③與硬件具體功能相關(guān)的頭文件“hardware.h”和將芯片與平臺(tái)結(jié)合的具體代碼。“hardware.h”包含了其他硬件子系統(tǒng)的頭文件,并被主文件“MainC.nc”所包含。
            ④修改鏈接腳本文件,仿照其他平臺(tái)文件在tos/platforms文件夾下建立tos.x文件,設(shè)置rom和ram的起始地址和大小。設(shè)置中斷向量表、代碼段、數(shù)據(jù)段、非初始化數(shù)據(jù)段和其他段的放置位置。
            ⑤定義中斷向量表,在tos/platforms/STM32-p103/vectors文件夾下新建STM32-vector.c文件,用于放置中斷向量表,按照STM32提供的中斷配置中斷向量表,并初始化默認(rèn)中斷處理函數(shù),實(shí)際應(yīng)用中這些中斷處理函數(shù)可以在其他文件中重定義。比如時(shí)鐘中斷處理函數(shù)在McuSleepC.nc中重定義。



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉