女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1 軟件無線升級(jí)系統(tǒng)方案基于無線通信的遠(yuǎn)程監(jiān)控系統(tǒng)(如遠(yuǎn)程電網(wǎng)質(zhì)量監(jiān)控系統(tǒng)、水情測(cè)報(bào)系統(tǒng)和城市路燈監(jiān)控系統(tǒng)等)應(yīng)用越來越廣泛,而在實(shí)際使用過程中,由于需求的變化,經(jīng)

1 軟件無線升級(jí)系統(tǒng)方案

基于無線通信的遠(yuǎn)程監(jiān)控系統(tǒng)(如遠(yuǎn)程電網(wǎng)質(zhì)量監(jiān)控系統(tǒng)、水情測(cè)報(bào)系統(tǒng)和城市路燈監(jiān)控系統(tǒng)等)應(yīng)用越來越廣泛,而在實(shí)際使用過程中,由于需求的變化,經(jīng)常要對(duì)其終端設(shè)備軟件進(jìn)行修改或升級(jí)。一般情況下,無線監(jiān)控系統(tǒng)與終端距離較遠(yuǎn),終端分散且工作環(huán)境較差。如果維護(hù)人員到現(xiàn)場(chǎng)進(jìn)行軟件升級(jí),不但維護(hù)費(fèi)用很高,而且還可能使終端設(shè)備長(zhǎng)時(shí)間不能正常工作。

為解決這一難題,本文提出一種利用ST公司的STR710FZ2T6作為終端微控制器,融合IAP(In Application Programming,在應(yīng)用編程)技術(shù)和GPRS無線網(wǎng)絡(luò)通信技術(shù)的軟件升級(jí)系統(tǒng)方案。軟件無線升級(jí)系統(tǒng)整體框圖如圖1所示。

 

圖1 軟件無線升級(jí)系統(tǒng)整體框圖

2 系統(tǒng)硬件和軟件設(shè)計(jì)

2.1 硬件設(shè)計(jì)

本文選用的是ST公司的一款工業(yè)級(jí)微控制器STR710FZ2T6。它是基于arm7TDMI 的32位RISC CPU,擁有豐富的外設(shè)和增強(qiáng)的I/O功能,并提供高達(dá)33 MHz的直接存取速度以及50 MHz零等待狀態(tài)的序列閃存;具有(256 KB+16 KB) Flash 和64 KB SRAM,內(nèi)部Flash可重復(fù)擦寫10萬次,數(shù)據(jù)保持20年,支持自編程;外部存儲(chǔ)器接口(EMI)可支持4個(gè)SRAM、Flash、ROM等存儲(chǔ)類型;芯片有多種boot方式。另外,STR710FZ2T6能夠通過運(yùn)行在Flash中的程序來對(duì)自身的Flash進(jìn)行更新。這個(gè)功能使其能夠通過CAN、UART、USB、無線通信等接口將程序下載到自身的Flash中。

系統(tǒng)結(jié)構(gòu)如圖2所示。根據(jù)微控制器STR710FZ2T6的特點(diǎn)以及無線監(jiān)控終端的功能要求,硬件設(shè)計(jì)包括由電源電路、復(fù)位電路、JTAG接口電路、晶振電路組成的芯片工作最小系統(tǒng),以及在最小系統(tǒng)上擴(kuò)展的串行接口模塊、外存儲(chǔ)器模塊、數(shù)據(jù)顯示模塊、數(shù)據(jù)采集模塊和SIM300 GSM/GPRS通信模塊。其中,擴(kuò)展的外存儲(chǔ)器包括SST公司的具有16位數(shù)據(jù)寬度的Flash存儲(chǔ)器SST39VF1601和ISSI公司的SRAM 存儲(chǔ)器IS61LV25616AL。

 

圖2 軟件無線升級(jí)系統(tǒng)結(jié)構(gòu)框圖

2.2 終端軟件設(shè)計(jì)

系統(tǒng)終端軟件的設(shè)計(jì)包括終端引導(dǎo)程序設(shè)計(jì)和終端應(yīng)用程序的設(shè)計(jì)。引導(dǎo)程序和應(yīng)用程序在STR710FZ2T6中所存放的位置不同。將啟動(dòng)模式配置為從片內(nèi)Flash引導(dǎo)之后,系統(tǒng)終端微控制器將復(fù)位,啟動(dòng)之后先執(zhí)行引導(dǎo)程序。引導(dǎo)程序在執(zhí)行過程中決定是否啟動(dòng)IAP升級(jí)程序;應(yīng)用程序?qū)崿F(xiàn)終端的各種功能,如命令和數(shù)據(jù)的接收、發(fā)送,以及新版本應(yīng)用程序升級(jí)包的下載。

2.2.1 終端引導(dǎo)程序設(shè)計(jì)

系統(tǒng)設(shè)計(jì)時(shí),終端引導(dǎo)程序通過JTAG接口燒寫到STR710FZ2T6的Flash扇區(qū)起始位置(0x40000000)處。整個(gè)引導(dǎo)程序占用Flash的前兩個(gè)扇區(qū),通過啟動(dòng)模式的選擇,將這塊Flash映射到0x00000000,保證系統(tǒng)上電后自動(dòng)運(yùn)行引導(dǎo)程序。終端重新啟動(dòng)時(shí),STR710FZ2T6從0x40000000地址開始讀取指令并執(zhí)行。

經(jīng)過實(shí)驗(yàn)證明:將IAP升級(jí)程序存放在用戶引導(dǎo)部分是非常合理的,能夠避免由于應(yīng)用程序升級(jí)失敗而造成的系統(tǒng)崩潰。由于終端引導(dǎo)程序在產(chǎn)品出廠前固化,若Flash編程失敗,微控制器將重新啟動(dòng),IAP程序利用存儲(chǔ)器SST39VF1601中保存的最新版本的應(yīng)用程序,重新對(duì)Flash進(jìn)行編程。由于引導(dǎo)程序有多次編程Flash扇區(qū)的能力,系統(tǒng)應(yīng)用程序代碼的完整性以及應(yīng)用程序升級(jí)的可靠性才得以保證。引導(dǎo)程序流程如圖3所示。

 

圖3 終端引導(dǎo)程序流程

終端引導(dǎo)程序的主要函數(shù)說明:

① main()主函數(shù)。用于初始化UART接口,PLL設(shè)定等,根據(jù)升級(jí)標(biāo)志和新版本號(hào)判斷是否繼續(xù)執(zhí)行IAP。若升級(jí)標(biāo)志置位,且新版本號(hào)大于當(dāng)前的版本號(hào),則啟動(dòng)IAP升級(jí)程序,否則運(yùn)行終端應(yīng)用程序。

int __main(void)

② 對(duì)片內(nèi)Flash進(jìn)行初始化操作。

void FLASH_Init(void)

③ 從第二扇區(qū)算起,計(jì)算代碼需要的扇區(qū)數(shù)。

u32 FLASH_SectorMask(vu32 Size)

④ 將新代碼需要的扇區(qū)去掉寫保護(hù),為扇區(qū)擦除做準(zhǔn)備。

void FLASH_WritePrConfig(u32 Xsectors,F(xiàn)unctionalState NewState)

⑤ 將新代碼需要的扇區(qū)進(jìn)行擦除,為寫做準(zhǔn)備。

void FLASH_SectorErase(u32 Xsectors)

⑥ 將新代碼寫入Flash扇區(qū)中。

void FLASH_WordWrite(u32 XtargetAdd,u32 Xdata)

2.2.2 終端應(yīng)用程序設(shè)計(jì)

終端應(yīng)用程序設(shè)定的起始地址是STR710Z2T6的0x40004000處,并可占用之后的整個(gè)Flash空間。終端應(yīng)用程序不但完成日常各項(xiàng)工作任務(wù),而且還負(fù)責(zé)接收監(jiān)控中心服務(wù)器發(fā)送的應(yīng)用程序升級(jí)命令。當(dāng)收到升級(jí)命令后,終端回應(yīng)服務(wù)器此時(shí)若接收升級(jí)代碼,則應(yīng)用程序?qū)⑸?jí)包按照幀的方式通過GPRS模塊從服務(wù)器下載到終端,通過校驗(yàn)后保存到終端外部Flash存儲(chǔ)器SST39VF1601中,下載成功后置位升級(jí)標(biāo)志和記錄升級(jí)包版本號(hào)以備引導(dǎo)程序升級(jí)。由于升級(jí)包的下載過程可看成是數(shù)據(jù)傳輸過程,應(yīng)用程序可在下載升級(jí)包的同時(shí)進(jìn)行其他任務(wù),且不影響終端的正常工作。當(dāng)終端應(yīng)用程序下載完升級(jí)包之后,應(yīng)用程序?qū)Ρ匾默F(xiàn)場(chǎng)進(jìn)行保存然后主動(dòng)復(fù)位,微控制器啟動(dòng)之后直接執(zhí)行引導(dǎo)程序,并進(jìn)行Flash編程。由于很多系統(tǒng)終端日常任務(wù)繁多,可通過程序中相應(yīng)的設(shè)置,使新代碼下載和Flash編程盡量選擇在終端可能空閑的時(shí)間段,從而盡可能地減少升級(jí)應(yīng)用程序?qū)K端正常工作的影響。

3 通信協(xié)議的設(shè)計(jì)

參照通信規(guī)約和已存在的無線配電監(jiān)控系統(tǒng)的協(xié)議,本文定義了3種類型的協(xié)議幀:服務(wù)器請(qǐng)求升級(jí)幀、升級(jí)代碼數(shù)據(jù)幀和終端回應(yīng)幀。

協(xié)議幀公共數(shù)據(jù)段:

 

[!--empirenews.page--]

服務(wù)器請(qǐng)求升級(jí)幀幀格式如下:

 

升級(jí)代碼數(shù)據(jù)幀幀格式如下:

 

終端回應(yīng)幀幀格式如下:

 

通信幀部分?jǐn)?shù)據(jù)段說明:

① 數(shù)據(jù)長(zhǎng)度。表示數(shù)據(jù)域的字節(jié)數(shù)(由2字節(jié)構(gòu)成),為0時(shí)表示無數(shù)據(jù),其值為此數(shù)據(jù)段到校驗(yàn)和之前的數(shù)據(jù)字節(jié)數(shù)之和。

② 升級(jí)軟件版本號(hào)。無線監(jiān)控系統(tǒng)終端收到升級(jí)請(qǐng)求幀之后,將此數(shù)據(jù)段和其本身的軟件版本進(jìn)行比較。如果版本號(hào)小于將要升級(jí)的軟件版本,終端將回應(yīng)服務(wù)器同意升級(jí),否則放棄升級(jí)。

③ 升級(jí)文件長(zhǎng)度。用來判斷存儲(chǔ)空間夠不夠存放將要升級(jí)的文件,以及升級(jí)代碼是否傳輸完畢[4]。

4 終端編程注意事項(xiàng)

(1) 編程代碼大小。IAP編程是用戶的IAP代碼對(duì)片內(nèi)Flash存儲(chǔ)器進(jìn)行擦除/編程的過程。由于片內(nèi)Flash存儲(chǔ)空間的限制以及代碼存儲(chǔ)空間的限定,編程時(shí)不但需要控制IAP自身代碼量的大小,而且還要控制終端應(yīng)用程序代碼的大小,絕對(duì)不能夠超出所指定的存儲(chǔ)范圍。

(2) 提高遠(yuǎn)程升級(jí)速度的措施。為了提高系統(tǒng)遠(yuǎn)程升級(jí)的速度,在代碼傳輸過程本文采取3種措施:

① 數(shù)據(jù)壓縮。數(shù)據(jù)壓縮是解決由于數(shù)據(jù)大而導(dǎo)致整個(gè)下載過程時(shí)間長(zhǎng)問題的最有效的辦法,本系統(tǒng)中服務(wù)器將升級(jí)代碼進(jìn)行壓縮,終端設(shè)備接收到之后進(jìn)行解壓、存儲(chǔ)。由于應(yīng)用程序的代碼滿足arm指令集的特征,所以壓縮效率較高。

② 應(yīng)用程序分塊加載。在日常系統(tǒng)維護(hù)中,無論對(duì)系統(tǒng)進(jìn)行升級(jí)或是修改程序中的“bug”,其實(shí)修改的只是程序中的一小部分,而大部分程序還保持原樣。因此,合理的方法是只把修改的代碼,而不是把整個(gè)二進(jìn)制文件下載到遠(yuǎn)程終端。具體的實(shí)現(xiàn)辦法是,建立分散文件,在其中按功能將應(yīng)用程序劃分為多個(gè)裝載區(qū),并為每個(gè)裝載區(qū)留有足夠大的空間,為以后的升級(jí)、修改做準(zhǔn)備。這種做法大大減小了數(shù)據(jù)傳輸量,提高了軟件升級(jí)速度。

③ 小數(shù)據(jù)塊傳輸。由于系統(tǒng)采用錯(cuò)誤重傳機(jī)制,根據(jù)實(shí)際應(yīng)用經(jīng)驗(yàn),數(shù)據(jù)塊越大出現(xiàn)錯(cuò)誤的機(jī)率就越大;同時(shí),由于數(shù)據(jù)塊大,傳輸一幀的速率較低,雖然接收到的數(shù)據(jù)幀較大,但由于錯(cuò)誤的機(jī)率和傳輸?shù)乃俾?,反而造成效率低下。采用小?shù)據(jù)塊傳輸,雖然一幀數(shù)據(jù)塊小,但彌補(bǔ)了上述不足。

(3) 遠(yuǎn)程通信的誤碼處理。程序代碼傳輸過程中,終端校驗(yàn)數(shù)據(jù)正確后存入SST39VF1601,檢驗(yàn)錯(cuò)誤時(shí)向服務(wù)器返回錯(cuò)誤的編碼和幀序號(hào)并請(qǐng)求重發(fā),直到檢測(cè)到結(jié)束幀為止。服務(wù)器發(fā)送最后一幀時(shí),如果該幀的數(shù)據(jù)長(zhǎng)度不夠,用00填充直到滿足協(xié)議中規(guī)定的長(zhǎng)度。對(duì)于數(shù)據(jù)傳輸過程中產(chǎn)生的誤碼,系統(tǒng)采用最有效的解決辦法是CRC循環(huán)冗余效驗(yàn)和重傳機(jī)制。

(4) 相同的存儲(chǔ)區(qū),不同的運(yùn)行區(qū)域。由于需要對(duì)Flash進(jìn)行編程,但是對(duì)Flash操作的代碼不能在Flash本身運(yùn)行,因此這部分代碼必須在內(nèi)部RAM中運(yùn)行??梢酝ㄟ^分散加載文件設(shè)置函數(shù)的運(yùn)行空間。

(5) 用戶中斷。在系統(tǒng)中IAP程序燒寫在從0x00000000開始的兩個(gè)Flash扇區(qū)內(nèi),而用戶程序則是存儲(chǔ)在從0x40004000開始的Flash空間中。如果用戶程序產(chǎn)生中斷,那么內(nèi)核會(huì)讀取到IAP的向量表,導(dǎo)致程序跑飛。解決辦法是,在跳轉(zhuǎn)到用戶程序之前,IAP程序把用戶程序的向量表拷貝到片內(nèi)RAM中,然后將RAM重映射到0x00000000地址,最后進(jìn)行跳轉(zhuǎn),這樣就可以保證0x00000000地址有用戶程序的向量表。

由于RAM的起始地址用來存放用戶程序的中斷向表,往其中寫入數(shù)據(jù)時(shí),需保證這些向量表不被覆蓋,故IAP程序、用戶程序的RW base使用的是0x20000100[5]。

結(jié)語

本文利用arm微控制器和GPRS模塊,提出了一種解決無線監(jiān)控系統(tǒng)終端軟件升級(jí)和維護(hù)困難問題的方案。相信在未來通信方式更加先進(jìn)、微控制器性能更加優(yōu)越的基礎(chǔ)上,軟件無線升級(jí)技術(shù)的應(yīng)用會(huì)越來越廣泛。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉