鄭 洲
(東華理工大學 機械與電子工程學院,上海 200237)
?
鄭 洲
(東華理工大學 機械與電子工程學院,上海 200237)
研究基于移動存儲介質的低成本、高性能車載影音系統,結合FreeRTOS操作系統調度的實時性和VisualState狀態機機制控制流程, 該系統實時性強,并且性能穩定,具有廣闊的市場前景。
車載影音;碟片;USB/SD;FreeRTOS;VisualState狀態機
隨著車載影音娛樂系統的普及,要求車載影音系統方案具有更高的穩定性、操作簡便性,也對成本控制提出了更大的挑戰。新一代車載影音系統省去了碟片攜帶不方便且成本較高的光驅控制部分,用現代存儲設備(如U盤、SD卡)為載體,借助高科技解碼技術,可將網上下載的多種格式的影音文件進行播放的車載影音娛樂系統進行升級,同時還整合了收音機、藍牙免提式接打電話、AUX輸入音頻等功能。整個系統使用FreeRTOS操作系統,實時響應各種中斷服務,同時采用狀態機控制機制,使整個流程控制更加清晰、穩定。
硬件MCU采用集成了USB/SD接口的STM32F103系列、電源管理芯片、AUX輸入檢測電路、藍牙模塊、調諧收音芯片TEF6621、鍵盤及顯示段碼屏,系統框架如圖1所示。為了滿足低功耗設計,各個模塊都有獨立I/O去控制對應電源。

圖1 系統框架圖
1.1 微處理器
系統采用32位Cortex-M3內核的STM32F103微處理器,工作電壓為2.0~3.6 V,主頻達72 MHz,有睡眠、停機和待機3種低功耗模式,包括12 位的ADC、DMA控制器,支持ADC、SPI、I2C、 32位CRC等外設[1],完全可以滿足車載影音系統方案需求。
1.2 USB檢測與復位電路
針對U盤兼容性測試中,不同廠商生產的U盤出現一次讀取不成功或者連續插拔讀取不成功的情況,本文提出了在一次讀取失敗之后,強制給U盤供電電路進行復位控制,中間需要間隔1 s左右,正常情況下一個U盤讀取時間為3 s,個別U盤有可能為5~6 s,在客戶可接受范圍內。檢測與復位電路如圖2所示。

圖2 USB檢測與復位電路
1.3 電源供電B+電路和ACC檢測電路
車載干擾因素非常多(例如發動機、點火系統等),其中最有威脅的干擾是共模干擾,少數還有差模干擾,因此系統需要在電源輸入端加入干擾過濾電路,并加大鋁電解電容容量,以消除汽車電源輸入端的干擾。電源主供電電路如圖3所示。

圖3 電源主供電電路

圖4 電源ACC檢測電路
對于車載系統,需要實時檢測點火信號ACC,當ACC關閉時需要進行數據備份、保存當前播放源、收音的當前頻點和預存臺號、USB/SD的當前播放曲目和文件夾等信息;當再打開ACC時,需要進行數據恢復處理。另外,還需要考慮電壓浮動情況的高低壓檢測電路部分設計。圖4為高低壓檢測電路。
1.4 后級功率放大電路
收音機模塊TEF6621對外通信接口為I2C總線,將它掛在系統I2C總線上,STM32F103可以對其相關寄存器進行設置。收音機芯片輸出音頻信號非常微弱,通過前級音頻控制芯片PT2313進行音源選擇和后級功率放大器TB2929[2]進行放大以驅動車載音響設備。其中后級功率放大電路略——編者注。
低成本車載影音系統的軟件系統是以嵌入式操作系統FreeRTOS作為開發和運行平臺,利用狀態機機制實現流程跳轉與功能實現,該軟件主要由操作系統FreeRTOS層、狀態機控制HMI層、媒體播放Media層等組成,如圖5所示。
2.1 FreeRTOS操作系統層
FreeRTOS作為一款輕量級操作系統,提供了任務管理、時間管理、消息隊列、內存管理等功能,并且源碼公開,在基于Cortex-M3內核的STM32F103系列上移植非常靈活[3]。
2.1.1 FreeRTOS移植
FreeRTOS的實現主要由list.c、queue.c、croutine.c和tasks.c四個文件組成。list.c是一個鏈表的實現,主要供給內核調度器使用;queue.c是一個隊列的實現,支持中斷環境和信號量控制;croutine.c和tasks.c是兩種任務的組織實現。對于croutine.c,各個任務共享同一個堆棧,使RAM的需求進一步縮小,正因如此,它的使用受到相對嚴格的限制。而task.c則是傳統的實現,各個任務使用各自的堆棧,支持完全的搶占式調度。FreeRTOS在STM32F103上的移植大致由3個文件實現:.h文件定義編譯器相關的數據類型和中斷處理的宏定義;.c文件實現任務的堆棧初始化、系統心跳的管理以及任務切換的請求;.s文件實現具體的任務切換,具體文件結構圖如圖6所示。

圖5 程序框架設計圖

圖6 FreeRTOS文件結構圖
2.1.2 任務配置
任務就是一段可以執行的代碼,擁有自己的棧資源和生命周期,可以被創建、刪除。任務創建后,系統會去執行入口函數里面的代碼。系統OS采用FreeRTOS,任務調度[4]原則是:高優先級的Task優先執行,只有高優先級Task主動讓出,低優先級Task才能被執行。任務劃分如表1所列。

表1 Task簡介
MainTask實現各種應用模式,主要處理設備插拔消息以及上下曲播放控制、藍牙協議交換處理、顯示信息處理。其控制流程如圖7所示。
2.2 狀態機控制HMI層
狀態機是一個很好的建模方法,能夠處理復雜的控制。狀態機提供了一個抽象化的系統設計方法,簡化了設計,使得維護復雜的控制成為可能。VisualState[5]圖形界面提供的工具鏈,使開發者能夠非常方便地設計出這種狀態圖;而一旦狀態機模型(或部分狀態圖)建立了,VisualState擁有強大的分析工具來處理它,從而確保最終產品與需求一致;在開發后期,狀態圖被用來生成目標代碼和開發文檔。VisualState是一組高級的嵌入式設計工具套件,專門用于開發高質量的嵌入式系統軟件,適用于汽車電子、便攜式電子產品、家電和人機界面等不同行業領域。

圖7 MainTask控制流程
車載影音系統采用狀態機控制機制,利用VisualState可視化圖形操作界面的直觀性對整個邏輯進行設計,根據消息事件的先進先出原則,對每個狀態下對應事件進行響應或者忽略,從而實現不同的邏輯控制。比如對應車載影音系統處于收音HMI_REC_MAIN這一大的狀態下,任何子狀態(包括收音初始狀態HMI_REC_INIT、搜索有效臺狀態HMI_REC_SEEK和預存6個信號臺AS狀態)都要對其進行響應處理,對于數字鍵1~6,都會優先進行響應處理,將其生成的代碼導入到程序中,將其中的消息響應函數添加到對應的模塊API函數中,實現其功能處理。收音狀態下HMI_REC_MAIN的狀態機控制流程圖略——編者注。
2.3 媒體播放Media層
為了有效管理寫入或者讀取USB/SD中的數據,需要將USB/SD卡中的數據以FAT32文件系統方式管理,本文采用比較成熟的FATFS Module[6]文件系統模塊。需要做的工作如下:修改ff.h以匹配處理器類型;修改integer.h以匹配數據類型;對diskio.c的6個接口函數(即Disk_initialize、Disk_status、Disk_write、Disk_read、Disk_ioctl和Get_fattime)進行編程,實現移植。
本地播放由前臺播放模式(MainTask)和后臺解碼(CodecTask)組成,前臺負責播放控制,后臺負責歌曲解碼播放。播放流程控制主要是實現上下曲切換、快進快退、瀏覽播放、重復和隨機模式選擇等功能。MainTask入口函數是一個死循環,一直檢測有無消息,如果有消息,則執行消息響應事件,一旦在指定時間內無消息,則執行任務調度。播放控制流程如圖8所示。

圖8 播放控制流程
車載影音系統已經成為新一代汽車的基本組成部分,車載嵌入式設備要求具有良好可靠性、健壯性、易用性,以及用戶操作響應快等特性。
3.1 硬件測試
硬件測試主要是檢測電路的硬件電路設計是否合理,比如針對電源ACC的頻繁開關測試、對U盤的模擬車輛運行過程中的抖動測試,以及針對藍牙部分的有效連接距離測試。
3.2 軟件測試
軟件測試首先要對各個模塊進行功能測試。對于媒體部分,有對各個廠商和各個容量大小的U盤或者SD卡的讀取時間測試,對USB支持播放歌曲格式(MP3、WMA、FLAC)的測試,以及對U盤文件中文件深度和最大支持播放歌曲數目測試,并且對錯誤曲目自動跳過、播放下一曲有效歌曲。對于藍牙部分,需要測試兼容性,對市面上多種品牌的多種款式手機進行測試,并且進行記錄,及時反饋給客戶。最后是對整個系統的打斷功能處理測試,如正在收聽電臺時,若連接上的手機接收到來電,需要轉到接聽電話界面。
經過移植和定制的實時操作系統FreeRTOS采用基于優先級的調度算法,并且通過VisualState 狀態機控制,整個系統代碼結構緊湊、流程清晰,非常適合汽車電子實時嵌入式應用?;贔reeRTOS實時操作系統設計的車載影音娛樂系統具有實時性強、精度高、穩定性強和性價比高等特點,不僅省去了光驅部分,而且也省去了為防止車輛運行過程中給伺服系統帶來抖動而引入的防震部分模塊設計。

[1] 黃智偉.STM32F 32位ARM微控制器應用設計與實踐[M].北京:北京航空航天出版社,2012.
[2] TOSHIBA.TB2929HQ DataSheet,2009.
[3] 張龍彪,張果,王劍平,等.嵌入式操作系統FreeRTOS的原理與移植實現[J].信息技術,2012(11):31-34.
[4] 張龍彪.嵌入式實時操作系統FreeRTOS的內核研究[D].昆明:昆明理工大學,2013.
[5] 趙良,倪福川.基于有限狀態機的嵌人式系統建模研究與實現[J].計算機工程與科學,2010(32):128-130.
[6] 洪岳煒,王百鳴,謝超英.一種易于移植和使用的文件系統FatFs Module[J].單片機與嵌入式系統應用,2008(5):29-31.

Zheng Zhou
(Department of Mechanical and Electronic Engineering,East China Institute of Technology,Shanghai 200237,China)
In this paper,low-cost and high performance car audio system based on the mobile storage medium is reasearched,and combining with the FreeRTOS operating system which has scheduling mechanism of real-time and VisualState state machine control process,all of that make the system has good real-time performance,stable performance and wide market prospect.
car audio;disc;USB/SD;FreeRTOS;VisualState state machine
TP368.1
A
士然
2015-02-09)