周江



摘要: 針對目前語文教學設備落后的現狀,利用現代電子技術,使用單片機、大容量NAND Flash存儲器和LED顯示屏等設計出適合小學低年級語文教學使用的漢語教學機。該機能進行漢語拼音、普通話音節、詞組和課文的教學。大容量NAND Flash存儲器里存儲的內容與教材一致,能有效地提高語文教學的效率和效果,特別是該機特有的漢字筆順的顯示功能,對學生漢字書寫的規范性有極大的幫助。
關鍵詞: 漢語教學機; 單片機; NAND Flash; LED; 漢字筆順
中圖分類號:TN912
文獻標志碼:A
文章編號:2095-2163(2017)04-0111-04
0引言
在當今的國內國際環境下,漢語學習贏得廣泛關注,對漢語學習手段的現代化要求也日益迫切。而“漢語教學機”的研制開發正是順應了這一廣闊鮮明的市場需要。
查閱中小學教學儀器的配備標準,理科課程的教學儀器明顯帶有更多新技術的痕跡,而語文教學基本上還都是采用掛圖的形式。與語文教學有關的只有“漢語拼音示教儀”,其功能也僅僅涉及聲母、韻母、整體認讀(以下簡稱整認)音節的發音,而并未提供視像顯示。另有研究指出,學生僅靠聽可以記住全部信息的15%,僅靠看可以記住25%,而視聽結合則可使學生記住全部信息的64%以上[1]。為此,視聽結合的漢語教學機即已成為該領域研究的發展方向。
[JP2]另外,由于計算機的普及,明顯擠占了國人書寫漢字的機會,這就造成了對漢字書寫在規范掌握上的難題。在一些與漢字書寫有關的電視節目中,雖然參與者均是學生中的佼佼者,但卻依然存在諸多不規范的情況,這與目前漢字書寫規范較為落后的教學手段有一定關系。“漢語教學機”特有的漢字筆順顯示功能,則能對漢字的書寫發揮有效的教學規范作用。[JP]
1漢語教學機功能分析
“漢語教學機”主要有以下6個功能:
1)漢語拼音的23個聲母、24個韻母、16個整認音節[2]的讀音和顯示。
2)普通話1 204個拼讀音節的讀音和顯示。
3)普通話拼讀音節所對應的漢字(一、二級字庫,共6763個)[3]顯示。
4)一級字庫漢字(共3 755個)[3]的書寫筆順顯示。
5)詞組的朗讀和顯示。最初的設計是,詞組的聲音由構成該詞組的每個漢字的聲音拼接而成,比如,詞組“中國”的發音,分別輸出“中”和“國”的聲音,兩者之間稍微有點延時就行了,但實際做出來后發現效果很差,沒有抑揚頓挫的感覺,不象正常人說的話,后改為使用完整的詞組的聲音。
6)課文(句子)的朗讀和顯示。因為顯示屏容量的原因,使得課文的朗讀和顯示實際上是由句子構成的,這樣顯示屏的容量只要能滿足一個句子的顯示就可以了。
2系統硬件構成
“漢語教學機”的系統框圖如圖1所示。
2.1顯示單元
采用紅色高亮LED,分辨率128*48,使用16*16的漢字點陣,每屏可顯示24個漢字。小學低年級語文課文的句子一般比較短,這能滿足使用者的需求。
2.2輸入單元
輸入單元可以是標準鍵盤、紅外遙控器或自己設計的矩陣鍵盤。可得闡釋分析如下:
首先,使用標準鍵盤無疑是最省事的,輸入方式同電腦上的拼音輸入法類似,但與漢語拼音的教學不同步。比如,輸入chang,用標準鍵盤需要輸入5個字母,但從拼音的角度看,chang是由聲母ch和韻母ang構成的。雖然也可以有解決辦法,比如定義標準鍵盤上某個鍵為ch等,但這樣需要定義的太多(23個聲母、24個韻母、16個整認音節,共有63個),并不直觀,而且與平常的習慣差別太大,使用者會覺得不方便而不愿意使用。
其次,采用紅外遙控器的最突出優點,是教師無需鄰近教學機的旁邊才能操作,但缺點也很明顯,紅外遙控器比較小,在上面配有幾十個按鍵,在使用上將增加一定難度。
最后,用自己設計的專用矩陣鍵盤,完全按照聲母、韻母、整認音節的排列方式設計,雖然按鍵數量同樣也多,但可以排列得較為直觀、方便。在“漢語教學機”中實際使用的是8*9的矩陣鍵盤。
有一部分的鍵是復用的。比如,韻母的前10個(a~ao)分別是數字0~9,用于在詞組或句子功能下輸入詞組或句子的編號,1聲聲調鍵也是回車鍵,用于對輸入編號的確認。這樣,用4個聲調鍵可以分別實現重復、前一個句子(詞組)、后一個句子(詞組)、連續等功能。
2.3存儲單元
選用NAND FLASH芯片。
人的語音的頻率大致在300~3 400 Hz之間[4],根據奈奎斯特定理,采用8 KHz的采樣頻率,也能做到無失真的回放,考慮到保留一定的泛音能夠使音色更好一些,應該采用更高的采樣頻率,比如,電話的語音一般就是單聲道、8 bit、11.025 KHz的采樣[4]。由于連續的語音比單個的語音在音效上更容易聽得清楚,所以在漢語教學機中使用單聲道、8 bit、采樣頻率22.05 KHz就能做到無失真的回放。漢語平舌音的頻率高于翹舌音,根據經驗,翹舌音采用11.025 KB/s的采樣頻率也能做到基本無失真的回放。如果選用8 Gb的NAND FLASH芯片(比如SAMSUNG的K9G8G08U0M[5]),即使全部使用22.05 KHz的采樣頻率,在不采用任何語音壓縮技術的情況下,也能存儲800 min左右的聲音信息,完全能滿足一般的需要。近幾年來,NAND FLASH的容量越來越大、價格越來越低,所以在這種不需要對語音信號進行傳輸的應用中,完全不需要采用語音壓縮技術了,可以直接使用WAV格式的語音數據。另外,存儲在NAND FLASH芯片中的信息,格式可以自行定義,可以輕松獲得較高的保密性。endprint
2.4控制單元
由單片機和外圍電路構成,是本系統的核心。
單片機的選擇主要考慮系統對硬件資源的需求。LED點陣屏一般采用串行的驅動方式,所以單片機要有SPI(Serial Peripheral Interface,串行外設接口)的功能;點陣屏的大小為128*48,需要的顯示緩沖區為768字節(128*48/8),這樣單片機內部的RAM至少需要2 KB以上;輸入單元是8*9的矩陣鍵盤,需要17條I/O口線,存儲單元選用NAND FLASH,需要14條I/O口線(數據線8條,控制線6條),所以單片機至少要有4個以上的8位I/O口。由于需要輸出聲音信息,單片機內部即需配備D/A轉換器。另外,因為NAND FLASH的工作電壓是2.7 ~ 3.6 V[6],為使接口電路簡單方便,應該選用低工作電壓的單片機。
根據以上分析,實際選用的芯片是TI的MSP430F1611。該芯片工作電壓1.8~3.6 V,配有48 KB的ROM和10 KB的RAM、2個SPI接口、6個8 bit I/O口、2個12 bit電壓輸出型的D/A(可設置為8 bit的分辨率)和2個16 bit的定時器等[7-8],完全能夠滿足系統的需要。
3電路框圖
語言教學機中所使用的電路比較常見,以下主要闡述MSP430F1611與K9G8G08的接口電路和128*48 LED屏的控制驅動電路。
3.1MSP430F1611與K9G8G08的接口電路
K9G8G08采用48腳的TSOP封裝形式,實際使用19個引腳。圖2即是MSP430F1611與K9G8G08的電路連接圖。其中,K9G8G08的19腳是寫保護,具體到本次設計中,只需要對K9G8G08進行讀的操作,沒有擦除和寫的操作,為此在實際電路中是固定接地的(寫保護有效)。
3.2128*48 LED屏的控制驅動電路
128*48的LED屏實際并沒有接成128*48的矩陣,而是接成64*96的矩陣,因為前者對應的連接需要176(128+48)條控制線,后者所需要的控制線是160(64+96)條,少16條控制線。其中的64條是掃描線,分接的是LED點陣的負端;96條是數據線,另接的是LED點陣的正端。64條負端的掃描線是由4片4-16譯碼器4514產生的,任何時刻有且只有1條為“1”(高電平),再經過8片ULN2803作為驅動,連接到LED屏的64個負端。96條數據線是用12片級聯的74HC595產生的,該組器件將由單片機SPI口輸出的串行數據轉換成并行數據,送到LED屏的96個正端。圖3就是LED屏的控制驅動電路的框圖。
圖3中,MSP430F1611的P3.4、P3.5分別連接二進制計數器的時鐘和復位信號;二進制計數器是4024,電路中要用到其7位輸出中的6位,最高位不用,低4位連接到4片4514的輸入端,高2位經過3-8譯碼器74HC138后輸出4條控制線,分別接到4片4514的INH(禁止端,23腳),這樣將可保證任何時刻只有1片4514有效;P3.1、P3.3、P3.6分別是12片級聯的74HC595的數據、時鐘和鎖存信號,其中數據信號只接第一片74HC595。
3.3電路的其它部分
8*9的矩陣鍵盤分別連接到P4、P5和P6.0,其中P4口是鍵盤的8條輸入線,P5和P6.0是9條掃描線。D/A使用DAC0,對應的引腳是P6.6,語音信號從這里輸出。
4軟件設計
4.1聲音輸出程序設計
這部分程序設計中最關鍵的是對K9G8G08的操作。在本設計中,程序只需要對K9G8G08進行讀的操作。從K9G8G08的器件手冊中,可以查到該操作的程序流程,此處將不再贅述。
[LL]
對K9G8G08讀的程序在定時器中斷時調用。對于22.05 KHz或11.025 KHz的WAV文件,定時器的中斷周期分別為45.35 us或90.7 us。對于單聲道、8 bit的WAV文件,對應頻率可以在文件的第0x18、0x19字節得到,對于22.05 KHz和11.025 KHz的WAV文件,這2個字節的值分別是0x22、0x56和0x11、0x2B,聲音信息從第0x2C個字節開始[9]。
聲音輸出的程序流程如圖4所示。對聲音的WAV文件數據,預先加入了一些處理:數據中的0x00均被改為0x01,再將文件的最后一個字節改為0x00,這樣就可以用0x00作為聲音文件的結束標志了,而數據中的0x00被改為0x01,對聲音幾乎沒有影響。
當然完全可以不這樣做,使用對聲音數據計數的辦法也未嘗不可。因為WAV文件中是有聲音數據長度信息的,存儲在文件的第0x28 ~ 0x2B這4字節中,采用小端模式存儲,即第0x28個字節存儲的是聲音數據長度的最低位[9]。
4.2漢字筆順顯示的流程
要能在點陣屏上顯示出漢字的筆順,只需按照書寫的順序,逐個點亮筆畫中的點。以漢字“工”為例,其筆順的顯示過程如圖5所示。
從圖5中可以看出,第1次亮第1個點(左上的點),第2次亮第2個點(第1個點保留),第3次亮第3個點(前2個點保留)……。所以,筆順的顯示實際上是由一幀幀的畫面構成的:第1幀顯示第1個點,第2幀顯示前2個點,……,第N幀顯示前N個點……,直到顯示完最后一個點。顯示的漢字有多少個點,其所對應筆順顯示就由多少幀的畫面構成。這樣,視覺呈現效果即如有一支無形的筆,在屏上“寫”出了漢字。
根據上面漢字筆順的顯示原理,可以設計漢字筆順字庫的格式,將需要顯示的點的坐標,按照書寫的順序遞次排列即可。
比如,以右上角為坐標原點(0,0),每個點的坐標用一個字節表示:高半字節為橫坐標、低半字節為縱坐標(也可相反),如圖6所示。endprint