www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件

  引 言

  在嵌入式產品中,一般使用Flash作為應用程序代碼及各種數(shù)據和參數(shù)的存儲介質。尤其是NOR Flash具有操作接口簡單、傳輸效率高、芯片內執(zhí)行(eXecute In Place,XIP)的特點,在電力、鐵路等工業(yè)控制領域得到了廣泛應用。

  為了便于用戶的使用,VxWorks操作系統(tǒng)提供了基于Flash的文件系統(tǒng),即TrueFFS。TrueFFS與DosFS文件系統(tǒng)基本兼容,通過VxWorks提供的操作接口以文件的方式實現(xiàn)對Flash的操作。而對于用戶來說,如何在自己的硬件系統(tǒng)上根據Flash的具體型號和使用要求實現(xiàn)TrueFFS系統(tǒng),并在此基礎上完成應用程序代碼的靈活啟動、更新,同時兼顧仿真調試的需求,則非常重要。

  1 系統(tǒng)基本功能

  本系統(tǒng)應用于鐵路牽引自動化系統(tǒng)中,實現(xiàn)在電氣化鐵路供電系統(tǒng)中對相關電力設備的保護、測量和控制功能。系統(tǒng)基本功能框圖如圖1所示。核心CPU選用Freescale公司的ColdFire系列32位微控制器MCF5234。該處理器內部集成了UART、SPI、I2C、ETPU、CAN、以太網等豐富的功能模塊,系統(tǒng)主頻可達150 MHz,主要用于工業(yè)控制、智能家電等方面(尤其是電力自動化控制領域)。系統(tǒng)通過2路以太網接口實現(xiàn)與當?shù)鼗蜻h方設備的通信,維護串口用來實現(xiàn)對本設備的維護,采用2片16位接口的NOR Flash實現(xiàn)應用程序和有關參數(shù)及數(shù)據的存儲。系統(tǒng)提供模擬量輸入、數(shù)字量輸入、數(shù)字量輸出等接口。有關的模擬量及開關量狀態(tài)信息經過對應接口采集到系統(tǒng)內部,經過保護算法軟件的處理后,再通過數(shù)字量輸出接口完成對有關設備的控制操作。

  在傳統(tǒng)嵌入式系統(tǒng)中,編譯好的運行態(tài)應用程序一般通過硬件調試工具(如BDM調試器)直接固化到程序Flash的指定位置,裝置上電或復位后,CPU直接跳轉到Flash的起始位置,從Flash中取指并開始執(zhí)行。但是在VxWorks中,采用該方式不方便軟件的仿真調試,需要重新固化bootrom才行。另外,由于系統(tǒng)要求保存較多的參數(shù)和數(shù)據,需要在2片F(xiàn)lash中都實現(xiàn)TrueFFS系統(tǒng);并且為了滿足動態(tài)更新程序的要求,還需要實現(xiàn)FTP的功能。因此,需要實現(xiàn)如下功能:在2片F(xiàn)lash上實現(xiàn)True-FFS;在bootrom和應用VxWorks程序上實現(xiàn)TrueFFS和FTP的加載;對bootrom進行改造,以實現(xiàn)應用VxWorks程序和調試VxWorks程序分別通過TrueFFS和TFTP的方式啟動。

  2 TrueFFS的實現(xiàn)及加載

  2.1 TrueFFS的層次結構

  如圖2所示,VxWorks中TrueFFS的層次結構包括內核層、翻譯層、socket層、MTD層。由于VxWorks對TrueFFS進行了優(yōu)秀的層次劃分和封裝,用戶一般不需要對上述基本層次代碼進行修改。MTD層實現(xiàn)了對常用幾種類型Flash的讀、寫、擦除等基本控制。如果用戶選用了支持的類型,則基本不需要編寫代碼;而如果用戶選用了特殊類型的Flash,則可以參考用例代碼完成對應MTD層代碼的編寫。

  2.2 MTD層代碼實現(xiàn)

  由于本系統(tǒng)中選用的2片F(xiàn)lash為Spansion公司的S29AL032D,因此需要編寫對應的驅動代碼。對于MTD層,一般向上提供MTD識別、Flash連續(xù)扇區(qū)擦除、Flash連續(xù)數(shù)據寫等主要接口函數(shù),可以不提供單獨的鏡像函數(shù),系統(tǒng)會使用內部缺省的鏡像函數(shù)。需要在2片F(xiàn)lash上實現(xiàn)TrueFFS,即每片F(xiàn)lash相當于一個分區(qū),這一點在編寫驅動程序時需要重點考慮。在MTD層驅動程序中,F(xiàn)lash的單個字節(jié)(或字)寫入接口函數(shù)為重點,不同F(xiàn)lash類型以及不同的端口寬度都會導致該函數(shù)的實現(xiàn)不同。其寫操作流程如圖3所示。

  為了在兩片F(xiàn)lash上實現(xiàn)2個文件分區(qū),可以采用以下方式:在sysTffs.c中定義新的MTD類型,并根據實際需要定義2片F(xiàn)lash(即兩個分區(qū))的起始地址和長度,并根據上述定義完成TrueFFS設備基址和窗口尺寸的設置;在sysTffsInit()函數(shù)中進行2次rfaRegister()操作以完成2個分區(qū)的注冊;在rfaRegister()中根據注冊的TrueFFS設備個數(shù)設置本TrueFFS設備的設備號。在MTD層接口函數(shù)中一般都有一個Flash驅動設備的參數(shù),可以根據該參數(shù)來獲取2個TrueFFS設備的設備號,然后分別指向對應的Flash地址范圍進行相應的操作。

  MTD驅動設計完成后,可以根據VxWorks提供的方式完成TrueFFS的加載。在應用程序中可以通過組件配置界面進行加載配置,而在bootrom中則需要手動修改相應的配置文件。

  由于系統(tǒng)的啟動需要從boottom開始,其編譯的結果文件必須以二進制方式固化到程序Flash的起始位置,因此每片F(xiàn)lash起始的256 KB空間都預留出來,不參與TrueFFS系統(tǒng)的管理。這樣,F(xiàn)lash上文件的操作與bootrom啟動代碼的保存不存在沖突。

  3 bootrom的改進

  在VxWorks中,修改好的bootrom一般通過硬件調試工具固化到代碼Flash中,bootrom啟動后通過TFTP方式實現(xiàn)編譯好的調試用VxWorks映像文件的下載過程,并完成該映像文件的啟動。這樣就可以實現(xiàn)基于串口或網絡的應用程序調試,使用更加方便靈活。

  為了滿足系統(tǒng)的要求,bootrom還需要增加如下功能:支持2個Flash分區(qū)的TrueFFS加載;支持FTP功能;支持從TrueFFS加載及啟動應用程序,以及從TFTP網絡方式加載及啟動調試態(tài)VxWorks映像文件兩種方式,以保證系統(tǒng)即使在現(xiàn)場運行過程中,一旦發(fā)現(xiàn)問題,也能夠方便地進行仿真調試;支持Flash的格式化及True-FFS的初始化功能,一旦文件系統(tǒng)異常后,可以通過該功能進行TrueFFS的徹底重構。由于boottom的主要工作在bootconfig.c文件中實現(xiàn),因此上述改進工作也主要在該文件中進行。

  還需要完成以下工作:在對應配置文件中加入IN-CLUDE_TFFS和INCLUDE_FTP_SERVER的定義,從而實現(xiàn)系統(tǒng)對TrueFFS和FTP功能的加載;對bootloader函數(shù)進行修改,使其不支持基于TrueFFS的應用程序啟動,當需要調試時通過網絡方式加載和啟動;增加一個類似于bootloader的功能函數(shù),可以以此函數(shù)為模版進行修改,完成TrueFFS功能的初始化和加載過程,以及基本網絡功能和FTP功能的加載,同時在程序Flash文件分區(qū)中存在應用程序文件的前提下,實現(xiàn)該應用程序的加載和啟動功能;增加2片F(xiàn)lash的格式化和TrueFFS的初始化功能函數(shù)。

  對bootCmdLoop任務執(zhí)行流程進行調整,改進后的流程如圖4所示。

  在bootCmdLoop進入超級終端界面循環(huán)操作過程后,可以通過相關命令完成基于網絡方式的調試態(tài)VxWorks映像文件的加載和啟動,也可以根據實際需要增加Flash格式化、自動進入超級終端界面標志命令設置、軟件復位等功能。經過上述改進,可以實現(xiàn)bootrom上運行態(tài)應用程序及調試態(tài)VxWorks映像文件的靈活加載和啟動,不僅避免了現(xiàn)場運行系統(tǒng)為進行調試而重新寫入bootrom的問題,而且方便應用程序的動態(tài)更新。

  4 應用程序的動態(tài)更新

  為了便于產品的維護和升級,本系統(tǒng)需要支持基于FTP的應用程序動態(tài)更新,而VxWorks提供了各種類型應用程序的加載啟動方式。由于應用程序最終在動態(tài)RAM中執(zhí)行,因此在TrueFFS和FTP功能具備的前提下,實現(xiàn)應用程序的動態(tài)更新非常方便。

  經過改造后,bootrom和最終應用程序中都實現(xiàn)了TrueFFS和FTP功能,因此在bootrom和最終應用程序執(zhí)行時都可以完成應用程序加載。另外,由于具備了bootrom中更新應用程序的功能,即使由于應用程序異常導致無法運行,復位后重新進入bootrom仍然可以進行新程序的更新,從而增強了系統(tǒng)的健壯性。

  需要注意的是,通過TrueFFS方式加載啟動的最終應用程序也是default類型的,而不是rom類型的。如果下載到文件系統(tǒng)中的應用程序是rom類型,則會導致bootrom無法成功加載該文件,因為其實現(xiàn)方式與仿真調試過程基本類似。

  結 語

  經過測試,采用上述實現(xiàn)方案后,系統(tǒng)運行穩(wěn)定。通過FTP工具,可以靈活地對2片F(xiàn)lash上文件分區(qū)中的文件進行讀寫操作,2 MB左右的應用程序文件可在30 s內下載到Flash中。整個系統(tǒng)的啟動過程穩(wěn)定可靠,對于2 MB左右的應用程序,從裝置上電到bootrom啟動,再到應用程序正常開始運行,基本可在十幾秒內完成。本方案對于基于VxWorks系統(tǒng)的嵌入式產品有一定的借鑒意義。

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

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

關鍵字: 驅動電源

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

關鍵字: 工業(yè)電機 驅動電源

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

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

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

關鍵字: 電動汽車 新能源 驅動電源

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

關鍵字: 發(fā)光二極管 驅動電源 LED

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

關鍵字: LED 驅動電源 功率因數(shù)校正

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

關鍵字: LED照明技術 電磁干擾 驅動電源

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

關鍵字: LED 驅動電源 開關電源

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

關鍵字: LED 隧道燈 驅動電源
關閉