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

基于USB的列車車載類設備軟件升級技術研究

2020-02-22 03:25:32楊玉春蘇燕辰伍川輝燕春光
鐵路計算機應用 2020年1期
關鍵詞:程序設備

楊玉春,蘇燕辰,伍川輝,燕春光

(1.西南交通大學 機械工程學院,成都 610031;2.中車唐山機車車輛有限公司,唐山 063035)

近年來,高速列車集成了越來越多的電子設備,例如車載視頻監控、故障診斷設備、失穩平穩監控設備、弓網監控設備等。當前電子設備軟件升級是通過以太網、CAN總線、串口等通信接口實現在線升級,同濟大學石盼等人提出基于以太網接口的 IAP(In Application Programming)遠程升級技術[1],該技術優點是傳輸速度快;南京郵電大學王琦和李龍光等人提出基于CAN總線的程序在線升級技術[2-3];東南大學提出基于串口的應用程序在線升級技術[4]。以上技術均是在線升級技術,需要攜帶電腦和專用通信線纜,連接設備和電腦后在線完成設備升級,該類方式操作不夠便捷,且串口和CAN的實際數據傳輸速率相對較低。由于列車車載設備數量眾多、操作環境復雜、不便拆卸等原因,這種在線升級的方式對工作人員來說無疑是一件繁重的工作。本文以STM32F407為主控芯片,進行基于USB的列車車載設備軟件升級的技術研究,提出一種傳輸速率更快的,基于USB 2.0通信的離線升級技術,利用便攜式U盤對多個車載電子設備進行軟件升級,工作人員只需攜帶裝有bin文件的U盤,插入對應主機上,便可實現對整列車的同系列設備的軟件升級。

1 STM32和USB介紹

1.1 STM32F407處理器介紹

STM32F407芯片是32位低功耗、高性能的處理器,該處理器基于ARM Cottex–M4內核,集成FPU和DSP指令,支持浮點運算,其CPU工作頻率達168 MHz,Flash為1 024 K,SRAM為192 K,具有豐富的資源(定時器、內部存儲、CAN、485、USB、以太網、串口等)。該處理器使用新內核的Thumb–2指令集,使設計人員可以把代碼容量降低45%,把應用軟件所需內存容量降低了近一半[5]。STM32F407內部自帶USB OTG FS控制器和USB OTG HS控制器,支持高速HS(USB2.0,傳輸速率480 Mbps)、全速FS(USB1.1,傳輸速率12 Mbps)和低速(USB1.0,傳輸速率1.5 Mbps)傳輸。

1.2 USB總線介紹

USB是一種串行總線通信方式,具有速率高、支持熱插拔、性能可靠、價格低廉和易于擴展等特點[6]。(1)速率高,目前的USB 2.0標準支持傳輸速率達到480 Mbps,能很好地滿足大部分的接口需求;(2)支持熱插拔,即插即用;(3)易于擴展,通過USB集線器,1個USB主控制器上最多可以連接126個外設;(4)性能可靠,USB系統通過規范的硬件設計和USB協議中完善的數據錯誤檢測機制來確保數據準確無誤地發送和接收[7]。

2 USB通信協議

USB外接設備從插入主機到拔出的整個過程中,共有6種狀態,包括:連接態、上電態、缺省態、地址態、配置態、掛起態[8],這個過程稱為枚舉過程。

2.1 枚舉過程

當一個USB外接設備被掛接到總線上時,主機通過枚舉過程識別和管理新加入的設備,這個過程使得USB外接設備支持熱插拔[9]。圖1展示了枚舉過程的轉換流程及轉化條件,狀態切換的因素包括硬件電平變化和設備軟件或主機軟件的設置[10]。

圖1 外接設備枚舉轉換過程示意圖

(1)連接狀態,USB外接設備通過USB接口連接主機或Hub,進而改變總線電平,總線由此判斷有新設備接入。

(2)上電狀態,USB外接設備連接后,總線給其供電,但由于設備未被分配地址,尚不能進行通信,該狀態稱為供電狀態。

(3)缺省狀態,USB外接設備插入接口等待100 ms,待供電穩定后,主機給端口發送復位命令,完成寄存器復位后,給設備分配地址0,該地址為USB總線公共地址,稱為缺省地址。此時,USB外接設備可通過該地址與主機通信,完成設備配置。

(4)地址狀態,主機通過缺省地址0與USB外接設備通信,獲取設備描述符、配置參數、配置通道,同時配一個總線地址,之后各種數據傳輸都是通過該地址。USB外接設備獲得唯一地址的狀態稱為地址狀態。

(5)配置狀態,主機獲得設備描述符之后,開始配置USB外接設備,此時設備處于配置狀態。

(6)掛起狀態,當總線無任何活動的時間達到3 ms,USB外接設備將自動切換為低功耗掛起狀態,此時,USB接口處電流小于0.5 mA,USB接口保持其地址信息和配置信息,等待總線活動將其喚醒。

2.2 USB的通信流

主機與USB外接設備通信是通過端點和管道來實現的,主機緩沖區和設備端點間的通信數據形成通信流。USB通信流如圖2所示。

(1)端點:USB外接設備端點是設備的標識。設備端點號有多個,設備地址只有一個。端點按種類分為輸入、輸出端點;按功能分為0端點和非0端點。

(2)管道:管道是主機存儲緩沖器與設備端點間進行數據傳輸的通道[11]。主機與設備0端點進行通信的管道稱為缺省管道。

2.3 USB接口電路設計

很多車載監控設備需進行高速數據傳輸,故選用USB OTG HS通信模式,外接PHY芯片。本文選用USB 3300芯片作為USB通信的物理芯片,該芯片兼容USB 2.0協議,傳輸速率最高達480 Mbps,采用并行接口與STM32F407連接,可實現數據快速交互;外接24 MHz晶振,將DP和DM引腳連接至USB–A型接口完成數據傳輸。USB電路設計如圖3所示。

圖2 USB通信流示意圖

圖3 USB電路設計圖

3 IAP技術

3.1 IAP實現原理

IAP技術將F1ash映射為System Memory和User Flash Memory 2個存儲體。當運行System Memory存儲體上的IAP程序時,可對User Flash Memory存儲體重新燒寫[12],這樣做是方便在使用一段時間后,通過預留的接口(USB、CAN、USART等)對產品進行升級。實現IAP時,需要設計2個程序,即IAP程序和App程序,IAP程序通過特定通信方式接收App程序,將App程序存儲到指定位置,實現程序更新;App程序是功能程序,用于實現設備的功能。

3.2 IAP工作模式

程序一般存放在STM32內部Flash中,IAP程序從最低位置(0X08000000)開始存放,App程序通過USB接口讀入并存儲在IAP程序的后面。加載IAP程序后,程序運行流程如圖4所示。STM32F407控制器復位后,從0X08000004處取出IAP復位中斷向量的地址,如標號①所示,并跳轉到IAP復位中斷服務程序執行;執行完后,跳轉到0X08000004+N的位置執行IAP中main函數,如標號②所示;IAP中main函數讀取App更新標志,如標號③所示,并判斷是否需要升級,若需要升級,則讀取IAP升級程序,并存儲到Flash的0X08010000位置[13],如果不需要,則直接執行App程序,如標號④所示;從0X08000004+N+M位置讀取App復位中斷向量的地址,并跳轉到對應復位中斷服務程序執行,之后跳轉到App main函數執行用戶程序,如標號⑤所示[14]。在App main函數執行過程中,如果接收到1個中斷請求,PC指針強制跳轉到0X08000004中斷向量表位置,如標號⑥所示,之后程序再根據App程序偏移量,跳轉到對應中斷服務程序,如標號⑦所示[15]。中斷服務程序執行結束后,返回到App main函數繼續執行應用程序,如標號⑧所示。

4 軟件升級實現

4.1 底包程序設計

在車載設備的IAP設計過程中,采用USB接口進行通信。(1)執行IAP程序中的USB驅動程序,初始化USB接口,并連接U盤;(2)掛載FAT32文件系統,實現對U盤的讀寫操作,并檢測U盤中是否存在bin文件;(3)IAP程序通過USB接口讀取提前配置并存儲在U盤中的升級程序,將升級程序存儲到Flash的0X08010000位置,升級后IAP跳轉到App程序位置開始執行新版App。

以上過程中,若存在U盤連接失敗、文件系統掛載失敗、bin文件讀取失敗或校驗不通過等情況,則視為升級失敗,執行系統復位;若U盤中不存在bin文件,則會跳到Flash0x08010000位置繼續執行舊版應用程序。具體升級過程如圖5所示。

圖4 加載IAP后程序運行流程圖

4.2 升級程序生成過程

底包程序采用Keil 5開發平臺搭建,Keil 5一般生成hex文件,但系統升級需使用bin文件。bin文件生成需3個步驟,包括:配置升級程序起始地址、配置中斷向量表偏移量、運行fromelf.exe。

4.2.1 升級程序起始地址設置方法

升級程序偏移地址設置過程為,打開Options for Target 配置軟件,點擊Target 選項卡,軟件界面如圖6所示,在該界面設置App程序起始地址為0X08010000,即偏移量為0X10000。STM32F4系列芯片內部Flash大小為1 024 KB,留給App的存儲空間為0X08010000~0X08100000(960 KB);留給IAP的存儲空間為:0X08000000~0X0800FFFF(64 KB)。

圖5 車載設備軟件升級流程圖

圖6 升級程序起始地址設置界面示意圖

4.2.2 中斷向量表偏移量設置方法

(1)中斷向量表設置函數

NVIC_SetVectorTable(uint32 NVIC_VecTab,uint32 Offset)

(2)IAP中斷向量表設置

NVIC_SetVectorTable(0x08000000,0x00)

//IAP偏移量為0

(3)App中斷向量表設置

4.3 軟件升級技術關鍵點

(1)軟件升級完成時,在從IAP程序跳轉到App程序之前,必須復位嵌套向量中斷控制器(NVIC,Nested Vectored Interrupt Controller ),防止跳轉過程中出現中斷,導致應用程序運行失敗。

(2)在App程序初始化時需正確設置NVIC向量表,將NVIC向量表映射到App程序起始地址;

(3)實現IAP程序過程中,必須正確處理計時器的清零操作,特別是在bin文件讀和寫、Flash擦除和編程過程中,要充分考慮計時器清零時間,在程序關鍵位置清零,一般在while循環函數中進行計時器清零操作。

5 結束語

本文詳細分析了IAP和USB通信協議的技術要點,實現了基于USB通信的車載設備軟件升級程序,通過裝有bin文件的U盤,就可完成整列車同系列產品的軟件升級任務,顯著降低了工作量。自帶USB協議接口的電子設備使用該技術不需要增加額外成本,只需通過軟件的更改,就可實現產品的升級和功能的修復。目前,該技術已應用于走行部故障診斷、平穩失穩在線監測等車載設備的系統升級。未來可探索該技術在智能家居、消費電子等更廣泛的物聯網應用場所的應用。

猜你喜歡
程序設備
諧響應分析在設備減振中的應用
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
如何在設備采購中節省成本
主站蜘蛛池模板: 久久99热66这里只有精品一| 欧美亚洲香蕉| 国产人人乐人人爱| 91毛片网| 91福利免费| 国产网友愉拍精品| 国产综合精品一区二区| 人妻中文久热无码丝袜| 亚洲欧美成人影院| 免费A级毛片无码免费视频| 日韩欧美91| 精品少妇人妻无码久久| 99久久99这里只有免费的精品| 久久人人爽人人爽人人片aV东京热 | 亚洲成人一区二区| 亚洲欧美自拍一区| 精品国产中文一级毛片在线看| 亚洲美女高潮久久久久久久| 亚洲欧美另类色图| 欧美亚洲中文精品三区| 国产91丝袜在线播放动漫 | 在线亚洲天堂| 亚洲欧美另类中文字幕| 精品一区二区无码av| 国产人成在线观看| 一级片免费网站| 波多野结衣一级毛片| 色综合久久无码网| 国产亚洲视频免费播放| www.狠狠| 亚洲最大情网站在线观看| 欧美成人午夜在线全部免费| 亚洲高清国产拍精品26u| 成人伊人色一区二区三区| 99热这里只有精品久久免费| 亚洲综合色区在线播放2019 | 毛片免费网址| 成人在线不卡| 亚洲无码37.| 国产另类乱子伦精品免费女| 久久香蕉国产线看观| 国产一区二区三区夜色| 国产成人盗摄精品| 国产精品网址你懂的| 99精品视频播放| 国产一级一级毛片永久| 色噜噜在线观看| 亚洲综合婷婷激情| 亚洲精品成人7777在线观看| 97久久免费视频| 亚洲一级毛片在线观播放| 亚洲乱码精品久久久久..| 国产91丝袜在线播放动漫 | 国产丝袜丝视频在线观看| 国产永久无码观看在线| 中文成人在线| 国产女人水多毛片18| 久久综合结合久久狠狠狠97色| 国产精品无码在线看| 亚洲高清无码久久久| 精品视频在线观看你懂的一区| 亚洲成人网在线观看| 亚洲视频免费在线看| 永久免费av网站可以直接看的 | 日本尹人综合香蕉在线观看| 毛片免费在线| 中文字幕在线免费看| 国产爽妇精品| 午夜欧美在线| 亚洲国产亚洲综合在线尤物| 欧美一级在线| 亚洲日韩在线满18点击进入| 乱系列中文字幕在线视频| 亚洲中文在线看视频一区| 国产一级在线播放| 无码福利日韩神码福利片| 91欧美亚洲国产五月天| 激情六月丁香婷婷四房播| 日韩国产综合精选| 91精品情国产情侣高潮对白蜜| 亚洲精品另类| 亚洲日本在线免费观看|