系統(tǒng)軟件設(shè)計(jì) - STM32L152和S14432的無線網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)分為主節(jié)點(diǎn)和從節(jié)點(diǎn)兩部分。軟件設(shè)計(jì)采用功能模塊化的設(shè)計(jì)思路,系統(tǒng)又可分為初始化模塊、應(yīng)用模塊和網(wǎng)絡(luò)管理模塊。其中初始化模塊包括單片機(jī)初始化模塊、射頻芯片初始化模塊和應(yīng)用初始化模塊;應(yīng)用模塊包括無線發(fā)送模塊、無線接收模塊、數(shù)據(jù)處理模塊、工作模式模塊;網(wǎng)絡(luò)管理模塊是通過路由協(xié)議組建無線網(wǎng)絡(luò)。
4.1 系統(tǒng)初始化
系統(tǒng)上電后,單片機(jī)根據(jù)主節(jié)點(diǎn)和從節(jié)點(diǎn)的區(qū)別對(duì)硬件和功能模塊進(jìn)行初始化,設(shè)定各個(gè)引腳的功能、單片機(jī)的工作模式和資源分配,以及各個(gè)應(yīng)用功能模塊的初始化。然后,通過SPI接口對(duì)無線射頻芯片進(jìn)行初始化。射頻芯片的工作模式、頻率、傳輸速度、傳輸方式等都按主從節(jié)點(diǎn)分別設(shè)置。
4.2 數(shù)據(jù)處理
系統(tǒng)采用類似ZMAC協(xié)議的幀格式對(duì)數(shù)據(jù)進(jìn)行打包通信。數(shù)據(jù)包的格式如下:
?
數(shù)據(jù)包的前端加上8n位的前導(dǎo)碼,是為了使接收端進(jìn)行幀同步。前導(dǎo)碼之后是幀同步字,當(dāng)接收端收到幀同步字之后,開始接收數(shù)據(jù)。包長(zhǎng)和校驗(yàn)碼是接收端用來校驗(yàn)數(shù)據(jù)接收錯(cuò)誤與否。數(shù)據(jù)處理模塊負(fù)責(zé)在發(fā)送前和接收后對(duì)數(shù)據(jù)包進(jìn)行信息處理。數(shù)據(jù)包分為網(wǎng)絡(luò)維護(hù)類和信息類,通過包類型位區(qū)分,其中數(shù)據(jù)包內(nèi)數(shù)據(jù)位的信息不通。當(dāng)網(wǎng)絡(luò)系統(tǒng)處于組建和維護(hù)期時(shí),數(shù)據(jù)包屬于網(wǎng)絡(luò)維護(hù)類,數(shù)據(jù)位的信息為節(jié)點(diǎn)的路由信息。節(jié)點(diǎn)的路由信息包括到匯聚節(jié)點(diǎn)的跳數(shù)、到相鄰節(jié)點(diǎn)的鏈路質(zhì)量評(píng)估信息、節(jié)點(diǎn)編號(hào)等。當(dāng)網(wǎng)絡(luò)系統(tǒng)處于工作狀態(tài)時(shí),數(shù)據(jù)位的信息為控制指令或數(shù)據(jù)碼。節(jié)點(diǎn)在數(shù)據(jù)信息發(fā)送前,數(shù)據(jù)處理模塊負(fù)責(zé)將需要發(fā)送的數(shù)據(jù)信息進(jìn)行分類,然后向其中分別加入各種不同的位信息,形成成熟的待發(fā)送的數(shù)據(jù)包。節(jié)點(diǎn)在數(shù)據(jù)信息接收后,該模塊負(fù)責(zé)對(duì)數(shù)據(jù)包進(jìn)行校驗(yàn),將數(shù)據(jù)包分類,然后對(duì)各種信息位進(jìn)行分離整理。其中,在發(fā)送和接收時(shí),通過對(duì)SI4432寄存器的配置操作,可以直接分離出配置位。配置位結(jié)構(gòu)如下:
?
4.3 數(shù)據(jù)發(fā)送和接收
數(shù)據(jù)發(fā)送模塊負(fù)責(zé)將數(shù)據(jù)包發(fā)送出去。當(dāng)接收到發(fā)送指令時(shí),首先通過SPI清空射頻芯片的發(fā)送FIFO,然后向發(fā)送FIFO里寫入需要發(fā)送的數(shù)據(jù)。打開射頻芯片發(fā)送完成中斷并禁止其他所有中斷。微控制器使能射頻芯片的發(fā)送功能,數(shù)據(jù)開始無線發(fā)送。將IRQ引腳拉高,并等待無線發(fā)送完成中斷。如果數(shù)據(jù)發(fā)送成功,則NIRQ變低電平。
數(shù)據(jù)接收模塊負(fù)責(zé)接收數(shù)據(jù)包。當(dāng)接收到微控制器的接收指令時(shí),首先通過SPI清空射頻芯片的接收FIFO。打開前導(dǎo)碼接收、幀同步中斷和接收包數(shù)據(jù)有效中斷,并關(guān)閉其他中斷。準(zhǔn)備好開始接收。若引腳NIRQ變?yōu)榈碗娖?,且讀取到接收包數(shù)據(jù)有效中斷位,通過SPI讀取接收FIFO中的數(shù)據(jù),關(guān)閉接收功能。發(fā)送和接收程序流程如圖5所示。
?
- 第 1 頁:STM32L152和S14432的無線網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)
- 第 2 頁:系統(tǒng)軟件設(shè)計(jì)
- 第 3 頁:系統(tǒng)管理機(jī)制
本文導(dǎo)航
非常好我支持^.^
(5) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [RF/無線] 5G-A時(shí)代的室內(nèi)網(wǎng)絡(luò)建設(shè)解決方案 2023-10-24
- [物聯(lián)網(wǎng)] 智慧醫(yī)院項(xiàng)目物聯(lián)網(wǎng)設(shè)計(jì)方案 2023-10-24
- [電子說] 華為青浦研發(fā)中心擬明年6月竣工交付,開展終端芯片等領(lǐng)域研發(fā) 2023-10-19
- [電子說] SZBOX S100袖珍迷你PC支持雙4K顯示設(shè)置 2023-10-17
- [電子說] 無線網(wǎng)絡(luò)電表泛在電力物聯(lián)網(wǎng)的應(yīng)用和趨勢(shì) 2023-10-13
- [電子說] 從1G到6G:移動(dòng)通信的史前時(shí)代 2023-10-11
- [移動(dòng)通信] 5G+PLC典型系統(tǒng)架構(gòu)應(yīng)用方案 2023-10-11
- [RF/無線] 機(jī)頂盒如何設(shè)置無線接入網(wǎng)絡(luò)? 2023-10-11
( 發(fā)表人:葉子 )