亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于nRF24L01的嵌入式無線下載系統(tǒng)設(shè)計(jì)*

        2021-03-18 06:41:16
        機(jī)械工程與自動(dòng)化 2021年1期
        關(guān)鍵詞:程序設(shè)計(jì)

        陳 聰

        (江蘇航空職業(yè)技術(shù)學(xué)院,江蘇 鎮(zhèn)江 212132)

        0 引言

        本文主要研究利用無線數(shù)據(jù)傳輸技術(shù)進(jìn)行嵌入式應(yīng)用程序下載更新。系統(tǒng)的設(shè)計(jì)立足于企業(yè)實(shí)際生產(chǎn)測試需求,與企業(yè)生產(chǎn)的產(chǎn)品測試對接的硬件測試設(shè)備無需人工進(jìn)行嵌入式程序下載更新,直接利用無線通信技術(shù)將最新設(shè)計(jì)的測試程序傳輸給相應(yīng)的測試設(shè)備。該技術(shù)不僅可以大大節(jié)約人力、縮短測試時(shí)間,同時(shí)還可以應(yīng)用于一些特殊生產(chǎn)測試車間,例如無塵車間及對靜電放電敏感產(chǎn)品的測試車間等。本設(shè)計(jì)采用的無線通信模塊為工作在2.4 GHz的無線收發(fā)模塊nRF24L01,該模塊采用歐洲頂尖RF公司設(shè)計(jì)的無線芯片,除具有成本低、體積小、產(chǎn)品穩(wěn)定等特點(diǎn)外,還具有最大10 dBm的發(fā)射功率、7 mA的接收電流以及-115 dBm的接收靈敏度,經(jīng)測試最大距離可達(dá)500 m,遠(yuǎn)超同類型的2.4 GHz無線模塊。

        1 下載系統(tǒng)總體設(shè)計(jì)

        系統(tǒng)的總體設(shè)計(jì)思路是設(shè)計(jì)一塊以STM32為主芯片的主機(jī)(程序下載板),先利用電腦端生成需更新程序的bin文件,接著電腦端通過UART串口將bin文件發(fā)送至主機(jī)的STM32 Flash中存儲(chǔ);更新從機(jī)(客戶板)程序時(shí),主機(jī)從Flash中讀取bin文件,并利用2.4 GHz無線通信模塊nRF24L01將數(shù)據(jù)發(fā)送到從機(jī)STM32 Flash中實(shí)現(xiàn)程序更新。圖1為下載系統(tǒng)結(jié)構(gòu)框圖。

        圖1 下載系統(tǒng)結(jié)構(gòu)框圖

        2 系統(tǒng)關(guān)鍵部分設(shè)計(jì)

        2.1 STM32 Flash操作設(shè)計(jì)

        上位機(jī)將從機(jī)需更新的應(yīng)用程序的bin格式文件通過UART串口通信方式發(fā)送給主機(jī),主機(jī)將收到的數(shù)據(jù)寫入自己的微處理器STM32的Flash中。因需要利用主機(jī)的STM32的Flash作為更新程序的中轉(zhuǎn)站,因此,選用STM32F103RET6作為主芯片。該芯片屬于大容量芯片,F(xiàn)lash容量為512 kB。大容量產(chǎn)品的Flash模塊組織結(jié)構(gòu)如表1所示。

        表1 STM32大容量Flash模塊組織結(jié)構(gòu)

        STM32F1的Flash由主存儲(chǔ)器、信息塊和閃存存儲(chǔ)器接口寄存器3部分組成。主存儲(chǔ)器用來存放代碼和數(shù)據(jù)常數(shù)。大容量產(chǎn)品的主存儲(chǔ)器被劃分為256頁,每頁2 kB。主存儲(chǔ)器的起始地址是0x08000000,BOOT0、BOOT1都接地的時(shí)候,就是從0x08000000開始運(yùn)行代碼。信息塊分為2小部分:啟動(dòng)程序代碼,用來存儲(chǔ)ST自帶的啟動(dòng)程序,存放串口下載代碼;用戶選擇字節(jié),則一般用于配置寫保護(hù)、讀保護(hù)等功能。閃存存儲(chǔ)器接口寄存器用于控制閃存讀寫等,是整個(gè)閃存模塊的控制機(jī)構(gòu)。

        ST固件庫對Flash操作主要提供了以下幾類函數(shù):①Flash上鎖、解鎖函數(shù);②Flash寫操作函數(shù)(包括16位、32位和用戶選擇寫入),F(xiàn)lash讀取可以直接通過地址訪問,因此沒有對應(yīng)的函數(shù);③Flash擦除函數(shù);④獲取Flash狀態(tài)函數(shù),該函數(shù)返回值主要包括忙、編程錯(cuò)誤、寫保護(hù)錯(cuò)誤、操作完成和操作超時(shí);⑤等待操作完成函數(shù),在進(jìn)行閃存寫或擦除操作時(shí),不能進(jìn)行代碼或數(shù)據(jù)的讀取操作,所以在每次操作之前,都要等待上一次操作完成。

        對Flash的操作大致需要4個(gè)流程:①確定要寫入Flash的首地址;②解鎖Flash;③對Flash進(jìn)行操作;④對Flash重新上鎖。

        2.2 nRF24L01一對多無線通信設(shè)計(jì)

        nRF24L01無線收發(fā)模塊是一種遠(yuǎn)距離、低功耗、高靈敏度的FSK無線數(shù)字通信模塊。該模塊具有126個(gè)通信通道、6個(gè)數(shù)據(jù)通道,滿足多點(diǎn)通信和調(diào)頻需要。nRF24L01采用4線SPI通信端口,通信速率最高可達(dá)8 Mb/s,適合與各種微處理器連接。

        nRF24L01可以實(shí)現(xiàn)多機(jī)通信,一個(gè)芯片最多可以設(shè)置六個(gè)接收地址,能輕松實(shí)現(xiàn)六發(fā)一收功能。而本設(shè)計(jì)中主機(jī)需要同時(shí)更新生產(chǎn)線上的多個(gè)從機(jī)程序,需要使用到一發(fā)多收的功能。因此,nRF24L01組網(wǎng)方式采用簡單可靠的輪詢方式。輪詢方式是典型的一主多從的組網(wǎng)方式,所有從機(jī)都不會(huì)主動(dòng)發(fā)送信息,平時(shí)一直處于接收狀態(tài)。只有主機(jī)發(fā)送給某個(gè)從機(jī)詢問指令的時(shí)候,該從機(jī)才會(huì)立刻回復(fù)一條信息,之后立刻再置為接收狀態(tài)。這樣就避免了多個(gè)模塊隨意發(fā)產(chǎn)生的頻繁碰撞問題,使得每次通信都安全可靠。

        2個(gè)nRF24L01之間通信一般需要設(shè)置4個(gè)條件相同:發(fā)射接收數(shù)據(jù)寬度、發(fā)射接收地址、發(fā)射接收頻道、發(fā)射接收速率。在輪詢工作方式下,可以通過配置主機(jī)的發(fā)射地址或發(fā)射頻道來實(shí)現(xiàn)主機(jī)與多個(gè)不同從機(jī)的通信。nRF24L01的發(fā)射接收地址是8位地址,頻道是0~125共126個(gè)頻道,理論上可以實(shí)現(xiàn)1個(gè)主機(jī)與無數(shù)個(gè)從機(jī)之間的通信。實(shí)際上通信地址或通信頻道設(shè)置過近會(huì)互相干擾,本設(shè)計(jì)主要模擬了1主5從之間的通信,通過配置不同的從機(jī)通信頻道來實(shí)現(xiàn)。從機(jī)1設(shè)置的頻道是10,從機(jī)2的頻道是30,從機(jī)3的頻道是50,從機(jī)4的頻道是70,從機(jī)5的頻道是90,頻道之間拉開距離??梢酝ㄟ^RF_CH寄存器配置主從機(jī)之間的通信頻道,nRF24L01常用寄存器及其功能如表2所示。

        表2 nRF24L01常用寄存器及其功能

        nRF24L01發(fā)射端初始化過程如下:①設(shè)置發(fā)射節(jié)點(diǎn)的地址TX_ADDR;②設(shè)置接收節(jié)點(diǎn)的地址RX_ADDR_P0,為自動(dòng)應(yīng)答準(zhǔn)備;③使能自動(dòng)應(yīng)答AUTO ACK EN_AA;④使能通道0接收地址PIPE 0 EN_RXADDR;⑤配置自動(dòng)重發(fā)次數(shù)SETUP_RETR;⑥選擇通信頻道RF_CH,本設(shè)計(jì)中通過更改寄存器RF_CH數(shù)值實(shí)現(xiàn)多機(jī)通信;⑦配置發(fā)射參數(shù)(低噪放大器增益、發(fā)射功率、無線速率)RF_SETUP;⑧選擇通道0有效數(shù)據(jù)寬度Rx_Pw_P0;⑨通過CONFIG寄存器配置24L01的基本參數(shù)以及切換工作模式。

        nRF24L01接收端初始化過程如下:①設(shè)置接收節(jié)點(diǎn)的地址RX_ADDR_P0;②使能自動(dòng)應(yīng)答AUTO ACK EN_AA;③使能通道0接收地址PIPE 0 EN_RXADDR;④為從機(jī)選擇通信頻道RF_CH;⑤選擇通道0有效數(shù)據(jù)寬度Rx_Pw_P0;⑥配置發(fā)射參數(shù)(低噪放大器增益、發(fā)射功率、無線速率)RF_SETUP;⑦通過CONFIG寄存器配置24L01的基本參數(shù)以及切換工作模式。

        3 主機(jī)軟件設(shè)計(jì)

        主機(jī)的應(yīng)用程序主要有兩大邏輯:一是判斷是否收到上位機(jī)通過串口發(fā)送過來的從機(jī)需要更新的應(yīng)用程序數(shù)據(jù),如果收到就按頁將數(shù)據(jù)寫入Flash中;二是如果生產(chǎn)線上的從機(jī)需更新應(yīng)用程序,則按下程序更新按鍵,開始讀取Flash中的數(shù)據(jù)并通過nRF24L01無線通信發(fā)送過去。其余時(shí)間,主機(jī)處于等待狀態(tài)。判斷是否收到上位機(jī)數(shù)據(jù)采用查詢方式,按鍵程序采用中斷方式。主機(jī)主程序流程如圖2所示。

        圖2 主機(jī)主程序流程

        本設(shè)計(jì)中將主機(jī)的Flash主存儲(chǔ)器劃分為兩塊區(qū)域,一塊用于存放正常程序,另一塊用于存放從機(jī)待更新的應(yīng)用程序數(shù)據(jù)。一般不復(fù)雜程序的bin文件大約占用幾十k字節(jié),因此,主機(jī)中存放正常程序的部分劃分128 kB區(qū)域,從地址0x8020000開始存放從機(jī)需更新的程序數(shù)據(jù)。主機(jī)收到電腦通過串口發(fā)送的bin文件數(shù)據(jù)后,開始從Flash第64頁按頁寫入數(shù)據(jù),當(dāng)全部數(shù)據(jù)寫入完成后鎖定Flash。主機(jī)Flash寫入流程如圖3所示。

        圖3 主機(jī)Flash寫入流程

        當(dāng)主機(jī)上的下載按鍵按下后,開始從主機(jī)的Flash中讀取數(shù)據(jù),并通過nRF24L01無線模塊發(fā)送出去。下載按鍵按下后,首先配置主機(jī)作為發(fā)射端的寄存器數(shù)據(jù),先配置主機(jī)與1號從機(jī)的通信頻道匹配,并建立連接,接著根據(jù)從上位機(jī)接收到的bin文件大小依次從主機(jī)Flash中讀取數(shù)據(jù)并發(fā)送給1號從機(jī);1號從機(jī)接收完畢后,延時(shí)等待1 s,開始將主機(jī)的通信頻道設(shè)置為2號從機(jī)的頻道,主從建立連接后開始發(fā)送數(shù)據(jù)。依次更新從機(jī)數(shù)據(jù),直到所有從機(jī)完成更新后返回主程序。主機(jī)Flash數(shù)據(jù)發(fā)送流程如圖4所示。

        圖4 主機(jī)Flash數(shù)據(jù)發(fā)送流程

        4 從機(jī)軟件設(shè)計(jì)

        從機(jī)未收到更新程序時(shí),執(zhí)行原程序;收到nRF24L01發(fā)來的數(shù)據(jù)后,將數(shù)據(jù)寫入從機(jī)的Flash中并執(zhí)行更新程序。因此,從機(jī)采用啟動(dòng)程序加應(yīng)用程序的設(shè)計(jì)。啟動(dòng)程序有兩個(gè)主要目的,一是跳轉(zhuǎn)到應(yīng)用程序并執(zhí)行,二是更新從機(jī)應(yīng)用程序。從機(jī)的Flash劃分和主機(jī)一樣,64頁前放置啟動(dòng)程序,從64頁開始放置應(yīng)用程序。在從機(jī)第一次程序燒錄時(shí),為從機(jī)編寫兩個(gè)工程文件:一個(gè)是啟動(dòng)程序工程,該工程在配置時(shí)ROM起始地址設(shè)為0x8000000,大小設(shè)為0xFFFF(128 kB);另一個(gè)是應(yīng)用程序工程,該工程在配置時(shí)ROM地址設(shè)為0x8020000,大小設(shè)為0xFFFF(128 kB)。要在啟動(dòng)程序中實(shí)現(xiàn)程序跳轉(zhuǎn)需要設(shè)置中斷向量表地址為0x8020000,同時(shí)將函數(shù)指針p指向應(yīng)用程序的復(fù)位函數(shù)地址。每次需要更新從機(jī)程序時(shí),先給從機(jī)斷電再重新上電,重新上電后程序自動(dòng)跳轉(zhuǎn)到啟動(dòng)程序執(zhí)行,等待接收主機(jī)發(fā)來的數(shù)據(jù)。從機(jī)的啟動(dòng)程序流程如圖5所示。

        圖5 從機(jī)啟動(dòng)程序流程

        5 結(jié)語

        本文設(shè)計(jì)的無線下載系統(tǒng)可以面向各類電子通訊設(shè)備的測試企業(yè),通過該系統(tǒng)可以優(yōu)化電子通訊產(chǎn)品的測試流程。在一項(xiàng)測試程序結(jié)束之后不用人工進(jìn)行每臺(tái)測試設(shè)備的程序更新,直接利用主機(jī)完成系列生產(chǎn)線上的測試設(shè)備程序更新,從而大大節(jié)約了人力和測試時(shí)間,該方法還可以進(jìn)一步應(yīng)用到特殊場合的生產(chǎn)及測試車間。

        猜你喜歡
        程序設(shè)計(jì)
        何為設(shè)計(jì)的守護(hù)之道?
        《豐收的喜悅展示設(shè)計(jì)》
        流行色(2020年1期)2020-04-28 11:16:38
        試論我國未決羈押程序的立法完善
        瞞天過?!律O(shè)計(jì)萌到家
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        亚州终合人妖一区二区三区| 婷婷综合缴情亚洲狠狠| 开心五月婷婷综合网站| 亚洲精品国产av日韩专区| av色综合久久天堂av色综合在| 性色av无码不卡中文字幕| 亚洲精品中文字幕观看| 国产视频一区二区三区久久亚洲| 欧美精品欧美人与动人物牲交| 人妻少妇精品中文字幕av蜜桃| 2021国内精品久久久久精免费| 国产精品亚洲精品专区| 第一次处破女18分钟高清| 国精品无码一区二区三区在线 | 国产乱人视频在线观看播放器| 蜜桃视频一区视频二区| 日韩欧美aⅴ综合网站发布| 欧美性videos高清精品| 午夜无码片在线观看影院y | 亚洲图片第二页| 国产极品大奶在线视频| 极品少妇小泬50pthepon| 98bb国产精品视频| 少妇久久高潮不断免费视频| 亚洲av成人综合网成人| 亚洲国产成人久久综合电影 | 女色av少妇一区二区三区| 欧美精品videossex少妇| 美女一级毛片免费观看97| 亚洲综合国产精品一区二区| 亚洲一区二区三区尿失禁| 国产mv在线天堂mv免费观看| 亚洲一区丝袜美腿在线观看| 亚洲乱码av乱码国产精品| 少妇无码吹潮| 日韩久久久黄色一级av| 亚洲熟女av在线观看| 亚洲成a人无码| 久久久久欧洲AV成人无码国产 | 日韩精品一区二区三区影音视频 | 蜜桃av区一区二区三|