999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

陳 聰

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

0 引言

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

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

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

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

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

2.1 STM32 Flash操作設(shè)計

上位機將從機需更新的應(yīng)用程序的bin格式文件通過UART串口通信方式發(fā)送給主機,主機將收到的數(shù)據(jù)寫入自己的微處理器STM32的Flash中。因需要利用主機的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由主存儲器、信息塊和閃存存儲器接口寄存器3部分組成。主存儲器用來存放代碼和數(shù)據(jù)常數(shù)。大容量產(chǎn)品的主存儲器被劃分為256頁,每頁2 kB。主存儲器的起始地址是0x08000000,BOOT0、BOOT1都接地的時候,就是從0x08000000開始運行代碼。信息塊分為2小部分:啟動程序代碼,用來存儲ST自帶的啟動程序,存放串口下載代碼;用戶選擇字節(jié),則一般用于配置寫保護、讀保護等功能。閃存存儲器接口寄存器用于控制閃存讀寫等,是整個閃存模塊的控制機構(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ù)返回值主要包括忙、編程錯誤、寫保護錯誤、操作完成和操作超時;⑤等待操作完成函數(shù),在進行閃存寫或擦除操作時,不能進行代碼或數(shù)據(jù)的讀取操作,所以在每次操作之前,都要等待上一次操作完成。

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

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

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

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

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

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

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

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

3 主機軟件設(shè)計

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

圖2 主機主程序流程

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

圖3 主機Flash寫入流程

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

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

4 從機軟件設(shè)計

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

圖5 從機啟動程序流程

5 結(jié)語

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

猜你喜歡
程序設(shè)計
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
試論我國未決羈押程序的立法完善
瞞天過海——仿生設(shè)計萌到家
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進
主站蜘蛛池模板: 狠狠色狠狠色综合久久第一次| 欧美在线三级| 国产福利拍拍拍| 亚洲一区二区三区麻豆| 亚洲色欲色欲www在线观看| 999福利激情视频| 91一级片| 欧美在线综合视频| 小13箩利洗澡无码视频免费网站| 国产手机在线观看| 久无码久无码av无码| 日韩无码视频播放| 青青青视频91在线 | 亚洲精品无码AV电影在线播放| 成人在线欧美| 97国内精品久久久久不卡| 国产激情无码一区二区三区免费| 最新国产高清在线| 国产麻豆另类AV| 一区二区三区四区在线| 国产精品无码AV中文| 亚洲一区二区约美女探花| 亚洲人成网站色7799在线播放| 久久久91人妻无码精品蜜桃HD| 久久免费观看视频| 亚洲欧洲AV一区二区三区| 天堂成人在线| 亚洲欧美一区二区三区麻豆| 国产免费一级精品视频| 毛片基地视频| 97亚洲色综久久精品| 国产91精品久久| 欧美日韩北条麻妃一区二区| 成人无码一区二区三区视频在线观看| 亚洲国产欧美目韩成人综合| 日韩小视频网站hq| 伊人网址在线| 毛片在线区| 日韩精品成人在线| 老司机精品一区在线视频| a色毛片免费视频| 亚洲人成影院午夜网站| 国产精品久久自在自线观看| AV在线天堂进入| 无码国内精品人妻少妇蜜桃视频| 色网站免费在线观看| 97免费在线观看视频| 日韩欧美在线观看| 在线免费看片a| 久久国产精品娇妻素人| 国产午夜一级淫片| 狠狠色丁婷婷综合久久| 精品一区二区三区四区五区| 成年网址网站在线观看| www.av男人.com| a级毛片免费播放| 亚洲第一香蕉视频| 精品在线免费播放| Jizz国产色系免费| 国产欧美日韩综合在线第一| 国产主播一区二区三区| 在线综合亚洲欧美网站| 亚洲成AV人手机在线观看网站| 999国产精品永久免费视频精品久久| 国产一级α片| 美女免费精品高清毛片在线视| 风韵丰满熟妇啪啪区老熟熟女| 91美女在线| 亚洲男女在线| 国产精品综合久久久| 欧美午夜在线视频| 亚洲精品无码抽插日韩| 国产在线麻豆波多野结衣| 欧美午夜久久| 在线播放真实国产乱子伦| 亚洲欧美日韩动漫| 国产在线拍偷自揄拍精品| 亚洲天堂在线视频| 熟女日韩精品2区| 国产a网站| 欧美日韩在线国产| 国产视频欧美|