摘 要:本文論述的是一款基于STM32F103系列單片機控制的兒童互動教學平臺系統,系統運用語言信號采集與處理解碼和STM32處理器以及存儲待處理語音信號技術為一體。其主要功能是一個由50-100頁彩色畫面組成的平臺,在平臺下面設置若干個按鈕,可以起到與兒童交互的作用。
關鍵詞:STM32F103RBT6;VS1003;頁碼識別
序言
目前市面上出現的兒童教育電子點讀類產品多為輻射性較強的液晶觸摸屏,作為兒童教育產品對孩子的視力有著嚴重的影響并且價格十分昂貴。針對這些缺點,我們設計的兒童互動學習平臺在傳統圖書的基礎上嵌入了音頻播放模塊和互動交流部分,不僅彌補了傳統圖書枯燥乏味不能引起兒童興趣的缺點而且我產品無電磁輻射。本設計采用的MCU為stm32系列單片機,設計電路簡單,性能穩定且價格便宜。
1 系統總體構架
交互式互動學習平臺系統由語音播放、頁碼定位、人機交互開關、數據存儲、電源管理及MCU最小系統等組成。當系統啟動初始化完成后,頁碼識別部分將檢測到的頁碼值傳遞給MCU,此時STM32會檢測人機交互模塊的信息,根據此兩部分信息提取不同的音頻信息傳給語音播放模塊,然后語音模塊將其解碼后播放出來。
2 系統硬件設計
系統硬件分為以ARM芯片為主控芯片和以VS1003為語言解碼以及基于反射式光電傳感器的頁碼識別部分為主要部分。ARM芯片采用意大利半導體的STM32F103RBT6芯片,該芯片采用ARM32位Cortex-M3核心,集成了多種高性能工業標準接口。
2.1 語音解碼模塊
語音解碼部分由于涉及噪聲以及各種干擾原因較多于是我們采用的是目前較為流行和方便的VS1003模塊。VS1003采用SPI方式讀取數據其中SCK為串行時鐘輸入。串行時鐘也使用內部的寄存器接口主時鐘。當系統要播放音頻文件時,MCU會控制將SD卡內的音頻文件通過SPI接口傳輸給VS1003,再經過VS1003將音頻文件解碼然后通過耳機或音響播放。
2.2 頁碼識別模塊
頁碼識別部分設計采用ST188紅外光電式傳感器,利用在不同的頁碼設置不同的黑點,當紅外放光管發出的紅外光射到黑點處時,由于黑色的吸光作用,ST188就不會接收到反射的光,當接收管沒有接收到紅光時我們利用四個紅外光電傳感器掃描到不同的黑點編碼可以識別出圖書的頁碼以此判斷各個語言材料的選擇。本設計的四個紅外管分別接在了PC0-3上,PC低四位的編碼值即為0x0b,MCU檢測到PC口的輸入電平從而判斷具體頁碼。
2.3 人機交互模塊
為了使本產品更加具有趣味性和交互性,設計了部分按鍵已達到使用者與產品之間的互動。設置了播放,上下內容選擇以及暫停按鍵。MCU有兩種方式檢測按鍵,本文采用查詢的方式。按鍵初始值為高電平當有按鍵按下時相應的I/O端口變低形成一個下降沿,通過不斷的循環按鍵掃描函數,MCU通過檢查下降沿便是相應的按鍵是否按下。當光電傳感器采集識別出頁碼時,語言部分并不播放相應的小故事而是當使用者按下相應的按鍵后有選擇性的執行,提高了產品的控制性能。
3 系統軟件設計
3.1 編程工具
在編程工具方面我們采用的是RealView MDK,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發工具。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動配置啟動代碼,集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能。本設計基于?C/OS-Ⅱ操作系統的移植與配置。軟件設計部分主要包括數據通過SPI讀寫,語音解碼,音頻播放,和按鍵事件等。
3.2 SPI讀寫
SPI總線系統是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。SPI總線系統可直接與各個廠家生產的多種標準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS。系統之所以采用SPI總線方式主要它是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,布線方便。SPI部分代碼具體流程首先是SPI的初始化,其中包括端口初始化,工作模式初始化即使半雙工還是全雙工,本設計采用的是全雙工模式8-bit數據一個停止位無效驗位,且SPI作為主機。其次就是傳輸速度的設置,再次考慮到系統的穩定性和VS1003解碼的速率問題我們設置的速率較低。其后便是具體一個字節數據的讀寫了,此部分必須遵守SPI讀寫規范根據其數據手冊編寫。
設計中的音頻內容通過SD卡存儲,其中SD卡的讀寫就是通過SPI方式通信,系統采用較為流行的FAT32文件操作系統而是自己根據實際功能實現采用自己編寫的文件系統,大大減小了軟件的代碼量。
3.3 音頻解碼部分
系統首先對VS1003進行初始化,包括各個I/O端口的時鐘使能以及工作方式的配置,由于VS1003與MCU的接口方式為SPI方式,該方式的一些配置在前面已經做過結束就不在贅述。其中VS1003對命令以及數據的讀寫程序以及我們對VS1003的很多設置都要嚴格按照VS1003的數據手冊具體說明編寫。包括音量的設置,聲調的設置,左右聲道的設置以及是否使用高低音等。VS1003對不同的音頻文件采取不同的解碼方式,所以其要判斷是哪種音頻文件然后進行各種測試以判斷其是否正常工作,包括正弦測試和內存測試等。
3.4 音頻播放部分
音頻文件只有通過解碼后才可以播放出來,具體怎樣播放的就在此部分代碼中控制。本設計的文件系統完成的工作是找到內存中某類文件的數量,我們在此文件系統下可以得到MP3類音樂文件的個數,然后通過控制相應的變量來控制相應的音頻文件。此部分我們首先要得到SD卡的信息,其中主要是總共MP3類文件的個數以及后來讀取相應的文件的信息。其中主要用到了兩個子函數,其一就是void Play_Music(void),另一個主要的函數是u8 Play_Song(u16 index,u16 total),此函數就是具體怎樣播放一個音頻文件了。此部分首先要讀取具體某個簇的某個扇區,其中扇區的數據是具體一個字節一個字節讀取的,在每個字節文件讀取完成后就會進行一次按鍵事件以及頁碼更改事件的掃描,所以其可以打到實時的曲目更新。
按鍵掃描事件以及頁碼識別部分此部分代碼的編寫與普通的代碼編寫差異不大,前面在硬件設計部分對這兩部分都進行了解釋在此就不再贅述。
4 總結
本設計基本上完成了總體設計要求,其中在語言解碼,頁碼識別,SD卡讀寫以及FAT文件系統方面做了很多工作。其中頁碼識別方面做得較為出色,想法新穎有創意且準確性高。不過本設計還是存在一些不足和有待改進的地方,例如在人機交互方面還有很大的提升空間,可以設置出更加新穎豐富的互動內容以提高趣味圖書的使用效果。
參考文獻
[1]竇文.兒童書籍設計互動性探討[D].湖南師范大學.2011,05:3-10.
[2]楊亞寧.輪胎爆胎預警系統硬件設計的可靠性研究[J].電子設計工程理.2012,06(20):5-7.