999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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)測(cè)試需求,與企業(yè)生產(chǎn)的產(chǎn)品測(cè)試對(duì)接的硬件測(cè)試設(shè)備無需人工進(jìn)行嵌入式程序下載更新,直接利用無線通信技術(shù)將最新設(shè)計(jì)的測(cè)試程序傳輸給相應(yīng)的測(cè)試設(shè)備。該技術(shù)不僅可以大大節(jié)約人力、縮短測(cè)試時(shí)間,同時(shí)還可以應(yīng)用于一些特殊生產(chǎn)測(cè)試車間,例如無塵車間及對(duì)靜電放電敏感產(chǎn)品的測(cè)試車間等。本設(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)測(cè)試最大距離可達(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固件庫(kù)對(duì)Flash操作主要提供了以下幾類函數(shù):①Flash上鎖、解鎖函數(shù);②Flash寫操作函數(shù)(包括16位、32位和用戶選擇寫入),F(xiàn)lash讀取可以直接通過地址訪問,因此沒有對(duì)應(yīng)的函數(shù);③Flash擦除函數(shù);④獲取Flash狀態(tài)函數(shù),該函數(shù)返回值主要包括忙、編程錯(cuò)誤、寫保護(hù)錯(cuò)誤、操作完成和操作超時(shí);⑤等待操作完成函數(shù),在進(jìn)行閃存寫或擦除操作時(shí),不能進(jìn)行代碼或數(shù)據(jù)的讀取操作,所以在每次操作之前,都要等待上一次操作完成。

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

2.2 nRF24L01一對(duì)多無線通信設(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)方式采用簡(jiǎn)單可靠的輪詢方式。輪詢方式是典型的一主多從的組網(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號(hào)從機(jī)的通信頻道匹配,并建立連接,接著根據(jù)從上位機(jī)接收到的bin文件大小依次從主機(jī)Flash中讀取數(shù)據(jù)并發(fā)送給1號(hào)從機(jī);1號(hào)從機(jī)接收完畢后,延時(shí)等待1 s,開始將主機(jī)的通信頻道設(shè)置為2號(hào)從機(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è)備的測(cè)試企業(yè),通過該系統(tǒng)可以優(yōu)化電子通訊產(chǎn)品的測(cè)試流程。在一項(xiàng)測(cè)試程序結(jié)束之后不用人工進(jìn)行每臺(tái)測(cè)試設(shè)備的程序更新,直接利用主機(jī)完成系列生產(chǎn)線上的測(cè)試設(shè)備程序更新,從而大大節(jié)約了人力和測(cè)試時(shí)間,該方法還可以進(jìn)一步應(yīng)用到特殊場(chǎng)合的生產(chǎn)及測(cè)試車間。

猜你喜歡
程序設(shè)計(jì)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
試論我國(guó)未決羈押程序的立法完善
瞞天過海——仿生設(shè)計(jì)萌到家
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 国产麻豆aⅴ精品无码| 亚洲国产欧美自拍| 激情爆乳一区二区| 国产在线欧美| 亚洲人成网站在线观看播放不卡| 18禁不卡免费网站| 国产欧美视频综合二区| 97国内精品久久久久不卡| 亚洲精品久综合蜜| 日韩欧美国产成人| 青草91视频免费观看| 亚洲经典在线中文字幕| 国产成人超碰无码| 91久久夜色精品国产网站| 在线欧美a| 国产h视频免费观看| 思思热精品在线8| 99热这里只有免费国产精品| 精品一区二区久久久久网站| 亚洲日韩精品无码专区| 自拍欧美亚洲| 成人欧美在线观看| 国产第八页| 国产日韩欧美在线视频免费观看| 欧美在线精品一区二区三区| 日本五区在线不卡精品| 国产成人AV男人的天堂| av大片在线无码免费| 欧美黄色网站在线看| 亚洲天堂视频在线播放| 亚洲区第一页| 成人在线观看一区| 激情综合网激情综合| 国产九九精品视频| 国产偷倩视频| 国产一区二区丝袜高跟鞋| а∨天堂一区中文字幕| 九色在线观看视频| 成人国产精品视频频| www.国产福利| 国产欧美在线视频免费| 欧美成人二区| 国产菊爆视频在线观看| 日本色综合网| 久久9966精品国产免费| 日韩久草视频| 亚洲国产91人成在线| AV无码一区二区三区四区| 色久综合在线| 97se亚洲| 在线a视频免费观看| 中文字幕人妻av一区二区| 亚洲Aⅴ无码专区在线观看q| 在线欧美日韩| 六月婷婷精品视频在线观看| 国产白浆在线| 久久综合久久鬼| 亚洲国产高清精品线久久| 国产精品久久久久鬼色| 无码高潮喷水在线观看| 永久免费无码日韩视频| 四虎国产永久在线观看| 99视频在线免费| 精品久久久久久成人AV| 91精品专区| 91免费国产在线观看尤物| 亚洲国产欧美目韩成人综合| 久久精品66| 亚洲欧美一区二区三区图片| 五月天久久婷婷| 精品国产成人高清在线| 国产美女91呻吟求| 亚洲天堂日韩av电影| 国产毛片基地| 日韩激情成人| 日本欧美成人免费| 国产在线精品99一区不卡| 性色生活片在线观看| 在线99视频| 欧美精品在线看| 国产精品自在线天天看片| 久久久久人妻一区精品|