国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CAN總線的TMS320F28335遠(yuǎn)程在線升級方法設(shè)計

2021-12-02 11:09倪慶生倪云龍潘曉陽袁盛俊
電子與封裝 2021年11期
關(guān)鍵詞:波特率底層上位

倪慶生,倪云龍,潘曉陽,袁盛俊

(中科芯集成電路有限公司,江蘇無錫214072)

1 引言

TMS320F28335是TI(Texas Instruments)公司一款性能優(yōu)越的C2000系列數(shù)字信號處理芯片,可實(shí)現(xiàn)快速數(shù)字信號處理,并通過本身多種外設(shè)接口實(shí)現(xiàn)外設(shè)的快速控制。隨著嵌入式系統(tǒng)集成化程度越來越高,TMS320F28335一旦形成產(chǎn)品應(yīng)用于現(xiàn)場,將使仿真器升級程序變得費(fèi)時費(fèi)力。

目前通過串口升級的方法比較成熟,但只能實(shí)現(xiàn)一對一升級,無法進(jìn)行組網(wǎng)。現(xiàn)場設(shè)備越多則需要的線纜越多,將導(dǎo)致布線越困難[1]。而已有通過CAN(Controller Area Network)升級的方法介紹也是多用于一對一升級,沒有進(jìn)行CAN組網(wǎng)驗(yàn)證[2-3]。在實(shí)際現(xiàn)場往往存在多個設(shè)備通過CAN總線進(jìn)行組網(wǎng)的現(xiàn)象,所以需要同時考慮CAN網(wǎng)絡(luò)[4]實(shí)際的通信情況對在線升級的影響。因此,基于CAN總線的多主通信方式以及非破壞性仲裁機(jī)制[5],本文設(shè)計了基于CAN總線的TMS320F28335遠(yuǎn)程在線升級方法。

2 遠(yuǎn)程在線升級基本原理

2.1 上位機(jī)程序設(shè)計

上位機(jī)程序的功能主要包括:

配置遠(yuǎn)程在線升級使用的CAN盒,使波特率、幀類型與下位機(jī)程序設(shè)置相對應(yīng),并增加濾波設(shè)置,在硬件上過濾掉CAN網(wǎng)絡(luò)中的非升級數(shù)據(jù)。

對CCS(Code Composer Studio)編譯應(yīng)用程序生成的.hex文件信息進(jìn)行提取,主要獲取應(yīng)用程序的升級地址和需要升級的數(shù)據(jù)。由于TMS320F28335片內(nèi)RAM資源有限,因此將需要升級的應(yīng)用程序進(jìn)行分組,每組包括16 Byte的信息和240 Byte的數(shù)據(jù),然后通過CAN總線傳輸[6]。每組數(shù)據(jù)傳輸完成后,需要等待底層程序響應(yīng)并給予應(yīng)答,上位機(jī)程序確認(rèn)無誤后再進(jìn)行下一組數(shù)據(jù)的傳輸。

另外上位機(jī)程序還集成了修改目標(biāo)板的設(shè)備ID(Identifier)號功能,用于區(qū)分CAN網(wǎng)絡(luò)中各節(jié)點(diǎn)、修改CAN波特率和CAN幀類型功能以適用不同的CAN網(wǎng)絡(luò)環(huán)境。上位機(jī)程序的軟件流程如圖1所示。

圖1 上位機(jī)軟件流程

上位機(jī)界面如圖2所示。

圖2 上位機(jī)界面

2.2 下位機(jī)程序設(shè)計

下位機(jī)程序主要包括應(yīng)用程序和底層程序。

應(yīng)用程序是需遠(yuǎn)程在線升級的程序,最終通過CCS編譯生成目標(biāo).hex文件;可與上位機(jī)程序進(jìn)行必要的通訊,循環(huán)查詢是否收到上位機(jī)升級指令,若收到則復(fù)位跳轉(zhuǎn)至底層程序,無需目標(biāo)板重新上電。其余功能根據(jù)用戶需求而定。

底層程序的主要功能包括對TMS320F28335進(jìn)行必要的初始化。通過查看片內(nèi)Flash是否有應(yīng)用程序和規(guī)定時間內(nèi)是否收到上位機(jī)升級指令來決定是否能升級標(biāo)記,然后再根據(jù)升級標(biāo)記來決定底層程序是否跳轉(zhuǎn)到應(yīng)用程序。若升級程序則調(diào)用擦除函數(shù)擦除片內(nèi)Flash,然后接收上位機(jī)發(fā)送的應(yīng)用程序,每組數(shù)據(jù)接收完成后做校驗(yàn)并判斷數(shù)據(jù)的正確性,并根據(jù)升級地址將數(shù)據(jù)燒寫到指定片內(nèi)Flash區(qū)域,最后給予上位機(jī)應(yīng)答。待應(yīng)用程序升級成功后,升級標(biāo)記不再使能,并可自動跳轉(zhuǎn)至應(yīng)用程序[7-8]。若不升級程序則直接跳轉(zhuǎn)至應(yīng)用程序。下位機(jī)程序的整體軟件流程如圖3所示。

圖3 下位機(jī)程序整體軟件流程

試驗(yàn)中發(fā)現(xiàn),在底層程序擦除TMS320F28335片內(nèi)Flash時,掉電可導(dǎo)致底層程序概率性失效。查看TI官方文檔[9],文中多次提到在擦除函數(shù)擦除Flash的過程中,不可將其打斷。一旦底層程序失效,將無法再進(jìn)行在線升級。為避免該問題,故將底層程序燒寫到SPI(Serial Peripheral Interface)[10]接口外掛的EEPROM內(nèi),并 配 置 硬 件 相 關(guān)GPIO(General-Purpose Input/Output)引腳將其做成SPI BOOT模式。應(yīng)用程序?qū)υ撈珽EPROM沒有寫權(quán)限,防止應(yīng)用程序意外修改EEPROM內(nèi)存儲的底層程序。

3 試驗(yàn)結(jié)果

根據(jù)原理搭建了試驗(yàn)環(huán)境,選擇CAN網(wǎng)絡(luò)直線型拓?fù)浣Y(jié)構(gòu)(見圖4)。

圖4 試驗(yàn)環(huán)境示意圖

CAN盒:型號為周立功的USBCAN-II,負(fù)責(zé)記錄CAN網(wǎng)絡(luò)中的通信數(shù)據(jù),并通過上位機(jī)顯示網(wǎng)絡(luò)負(fù)載率。試驗(yàn)中發(fā)現(xiàn)其記錄負(fù)載率平均值的最大值在90%~91%之間。不同CAN盒上位機(jī)負(fù)載率計算可能存在差異。本文以該CAN盒負(fù)載率計算值為基準(zhǔn)。

干擾節(jié)點(diǎn):通過控制干擾節(jié)點(diǎn)個數(shù),以及干擾節(jié)點(diǎn)數(shù)據(jù)發(fā)送頻率,可控制網(wǎng)絡(luò)的負(fù)載率。

本文測試環(huán)境中的CAN總線長分別約為70 m和40 m。由于總線長對波特率的限制,故本文只在波特率為500 kb/s、250 kb/s環(huán)境下進(jìn)行測試。CAN標(biāo)準(zhǔn)數(shù)據(jù)幀為44~108 bit,最高可以插入23個填充位[11]。因此本文設(shè)置干擾節(jié)點(diǎn)發(fā)送的每幀數(shù)據(jù)幀約為121 bit,加上數(shù)據(jù)幀之間的幀間隔最少為3 bit。因此在波特率為250 kb/s時,其網(wǎng)絡(luò)每秒理論上最多可傳輸約2065 frame。同理波特率為500 kb/s時,其網(wǎng)絡(luò)每秒理論上最多可傳輸約4129 frame。波特率為250 kb/s、CAN網(wǎng)絡(luò)滿載時情況如圖5所示。

圖5 CAN網(wǎng)絡(luò)滿載圖

分別控制節(jié)點(diǎn)數(shù)、總線長、網(wǎng)絡(luò)負(fù)載率和目標(biāo)節(jié)點(diǎn)優(yōu)先級4個影響因素,波特率為250 kb/s和500 kb/s時的試驗(yàn)數(shù)據(jù)分別如表1和2所示。

表1 波特率250 kb/s試驗(yàn)數(shù)據(jù)

當(dāng)目標(biāo)節(jié)點(diǎn)優(yōu)先級最低時,干擾節(jié)點(diǎn)每秒發(fā)送的理論幀數(shù)大于該波特率下每秒所能發(fā)送的最大幀數(shù)時,在線升級失敗,原因在于優(yōu)先級低的節(jié)點(diǎn)會無法搶占總線發(fā)送數(shù)據(jù)。而此時減少干擾節(jié)點(diǎn)數(shù),在線升級會概率性成功,原因在于干擾節(jié)點(diǎn)越少,網(wǎng)絡(luò)出現(xiàn)空閑的幾率越大,因此會提高在線升級概率。

當(dāng)目標(biāo)節(jié)點(diǎn)優(yōu)先級最高時,即使網(wǎng)絡(luò)滿載甚至超載,在線升級依然成功。

4 結(jié)論

根據(jù)現(xiàn)場復(fù)雜的應(yīng)用環(huán)境,同時針對CAN網(wǎng)絡(luò)的實(shí)際通訊情況,本文的設(shè)計方法實(shí)現(xiàn)了CAN網(wǎng)絡(luò)中任意節(jié)點(diǎn)的在線升級,在目標(biāo)節(jié)點(diǎn)優(yōu)先級最低時,測得在線升級的極限條件。而當(dāng)CAN網(wǎng)絡(luò)滿載時,可通過修改目標(biāo)節(jié)點(diǎn)優(yōu)先級后完成在線升級。本文分別在波特率為250 kb/s、500 kb/s的情況下進(jìn)行驗(yàn)證,并通過大量試驗(yàn)驗(yàn)證了該方法的穩(wěn)定與可靠性,可有效減少現(xiàn)場工作人員的工作量。該方法同樣對其他嵌入式處理器芯片實(shí)現(xiàn)在線升級有借鑒意義。經(jīng)實(shí)測在總線長為70 m、CAN網(wǎng)絡(luò)空載時,波特率為250 kb/s,升級99 kB的.hex程序用時70 s左右。

表2 波特率500 kb/s試驗(yàn)數(shù)據(jù)

猜你喜歡
波特率底層上位
UART 波特率檢測電路的FPGA 設(shè)計算法與實(shí)現(xiàn)
航天企業(yè)提升采購能力的底層邏輯
CAN 總線波特率自適應(yīng)程序設(shè)計
特斯拉 風(fēng)云之老阿姨上位
波特率自適應(yīng)的CAN驅(qū)動在嵌入式Linux下的實(shí)現(xiàn)①
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
詳解lAP15W4K58S4單片機(jī)的串行口通信
以新思路促推現(xiàn)代農(nóng)業(yè)上位
回到現(xiàn)實(shí)底層與悲憫情懷
博爱县| 仁布县| 介休市| 分宜县| 称多县| 沾化县| 徐水县| 固始县| 荃湾区| 望都县| 巩义市| 扶风县| 东乡| 湖州市| 浦东新区| 茶陵县| 泌阳县| 大余县| 胶南市| 鹤壁市| 淮北市| 岳西县| 保亭| 宜兰市| 镇雄县| 郸城县| 综艺| 临湘市| 和硕县| 通许县| 乳源| 南陵县| 长沙市| 盖州市| 南乐县| 武山县| 松阳县| 瑞金市| 颍上县| 锡林浩特市| 汝阳县|