基于DSP的嵌入式系統(tǒng)人機(jī)接口設(shè)計(jì)
人機(jī)接口是嵌入式控制系統(tǒng)的重要組成部分,用于人機(jī)之間實(shí)時(shí)交換控制系統(tǒng)并返回系統(tǒng)狀態(tài)。嵌入式系統(tǒng)大都采用液晶屏和鍵盤(pán)作為人機(jī)接口的輸入、輸出設(shè)備。這里設(shè)計(jì)的人機(jī)接口作為數(shù)據(jù)采集系統(tǒng)的組成部分,為系統(tǒng)控制和運(yùn)行監(jiān)測(cè)提供方便,而其本身在各種嵌入式控制系統(tǒng)中又具有廣泛的實(shí)用性。
2 液晶屏顯示功能的實(shí)現(xiàn)
這里采用的液晶顯示器為RT320240B。該顯示器的控制器使用SEIKO EPSON公司生產(chǎn)的SED1335型控制器。DSP訪問(wèn)SED1335時(shí),無(wú)需判斷其是否空閑,SED1335能夠隨時(shí)準(zhǔn)備接受DSP的訪問(wèn)并按照內(nèi)部時(shí)序及時(shí)正確傳輸DSP發(fā)送的指令、數(shù)據(jù)。考慮到RT320240B是大屏幕液晶顯示器,顯示數(shù)據(jù)采集波形需較快的屏幕刷新速度,這里采用并行數(shù)據(jù)發(fā)送方式,從而在硬件設(shè)計(jì)上提高液晶屏幕的刷新速度。
2.1 SED1335控制器
SED1335型液晶顯示控制器由振蕩器、功能邏輯電路、顯示RAM、管理電路字符庫(kù)及其管理電路,以及產(chǎn)生驅(qū)動(dòng)時(shí)序的時(shí)序發(fā)生器組成。振蕩器工作頻率在1~10 MHz范圍內(nèi)可選。SED1335的顯示RAM具有以下特性:
?。?)文本顯示特性 顯示RAM區(qū)專用于文本方式顯示,該顯示RAM區(qū)每個(gè)字節(jié)的數(shù)據(jù)都認(rèn)為是字符代碼,SED1335將使用該字符代碼確定字符庫(kù)中字符首地址,再將相應(yīng)字模數(shù)據(jù)傳送到液晶顯示模塊。在液晶屏上出現(xiàn)該字符的8×8點(diǎn)陣塊即文本顯示RAM的一個(gè)字節(jié)對(duì)應(yīng)顯示屏上的8×8點(diǎn)陣。
?。?)圖形顯示特性顯示RAM區(qū)專用于圖形方式顯示,該顯示RAM區(qū)每個(gè)字節(jié)的數(shù)據(jù)直接被送到液晶顯示模塊上,每個(gè)位的電平狀態(tài)決定顯示屏上一個(gè)點(diǎn)的顯示狀態(tài),1為顯示,0為不顯示。所以圖形顯示RAM的一個(gè)字節(jié)對(duì)應(yīng)顯示屏上的8×1點(diǎn)陣。
?。?)字符發(fā)生器SED1335管理內(nèi)存字符發(fā)生器CGROM,該字符發(fā)生器固化160種5×7點(diǎn)陣字符的字模SED1335,由于SED1335僅能處理8位字符代碼,所以一次最多只能顯示及建立256種字符并在SED1335的字符表中給出內(nèi)部字符發(fā)生器的全部?jī)?nèi)容,同時(shí)給出外擴(kuò)字符發(fā)生器的字符代碼范圍80H~9FH和E0H~FFH,共64種。
2.2 液晶屏顯示硬件電路設(shè)計(jì)
考慮到SED1335控制器的特點(diǎn)以及顯示波形對(duì)速度的要求,應(yīng)用并行數(shù)據(jù)總線的方法。而DSP2812的外擴(kuò)數(shù)據(jù)總線剛好符合并行傳輸數(shù)據(jù)需要。I/O數(shù)據(jù)緩沖接口A0選用外擴(kuò)地址總線的最低位地址總線A0,通過(guò)XINTF,將指令碼寫(xiě)入“*******1”的外擴(kuò)地址中,并將數(shù)據(jù)寫(xiě)入“*******1”的外擴(kuò)地址中,因此巧妙方便地解決了A0端口的設(shè)定,同時(shí)為編程帶來(lái)方便?;谏鲜隹紤]進(jìn)行設(shè)計(jì),液晶屏的硬件連接電路如圖1所示。
圖一
2.3 液晶屏顯示軟件設(shè)計(jì)
液晶屏顯示功能是通過(guò)向指定的內(nèi)存區(qū)域進(jìn)行寫(xiě)操作來(lái)實(shí)現(xiàn)的。通過(guò)讀指令讀取顯示緩存區(qū)中的內(nèi)容,并與寫(xiě)入數(shù)據(jù)相比較,就可有效地檢測(cè)顯示器緩存區(qū)RAM功能,結(jié)合各種SED1335控制器所提供的指令,全面檢測(cè)液晶顯示器。
結(jié)合DSP自身特點(diǎn)所設(shè)計(jì)的系統(tǒng)硬件電路,在編寫(xiě)軟件程序時(shí)首先要定義數(shù)據(jù)段LCDCMD、LCDDATA,并在主程序中進(jìn)行說(shuō)明:
#pragma DATA_SECTION(LCDCMD,“LCD_CMDFile”)
#pragma DATA_SECTION(LCDDATA,“LCD_DATAFile”)
然后在CMD中為這兩個(gè)數(shù)據(jù)段分配地址:
LCD DATA:origin=0x0080000,length=0x00001
LCD CMD:origin=0x0080001,length=0x00001
圖2為液晶屏顯示軟件設(shè)計(jì)流程。
圖二
尺寸相同的普通串口液晶刷屏速度一般為2~3 s,利用并口外擴(kuò)數(shù)據(jù)總線設(shè)計(jì)方法可將刷屏速度提高到0.5 s,符合設(shè)計(jì)要求,若采用匯編語(yǔ)言開(kāi)發(fā)該設(shè)計(jì),刷屏速度將更快。
3 PS/2鍵盤(pán)功能的實(shí)現(xiàn)
3.1 PS/2接口簡(jiǎn)介
本設(shè)計(jì)采用帶有PS/2接口的掃描式鍵盤(pán)。PS/2接口鍵盤(pán)遵循雙向同步串行協(xié)議,但主機(jī)在總線上總是具有優(yōu)先權(quán),只需將時(shí)鐘拉低就可在任何時(shí)候抑制來(lái)自鍵盤(pán)的通訊。物理PS/2接口是兩類連接器中的一種,5引腳的DIN或6引腳的mini-DIN,目前常用的連接器為mini-DIN6引腳插頭,17鍵小鍵盤(pán)也是該連接器。
3.2 PS/2接口硬件電路設(shè)計(jì)
PS/2接口只需2根數(shù)據(jù)線,連接簡(jiǎn)單,圖3為PS/2接口硬件連接電路。
圖三
3.3 PS/2接口鍵盤(pán)軟件設(shè)計(jì)
DSP處理器監(jiān)控按鍵矩陣,若發(fā)現(xiàn)有按鍵被按下釋放或按住,將發(fā)送掃描碼信息包到計(jì)算機(jī)。其中,掃描碼有通碼和斷碼兩種類型。當(dāng)按下或按住按鍵時(shí),發(fā)送通碼;當(dāng)釋放按鍵時(shí),則發(fā)送斷碼。每個(gè)按鍵分配有唯一的通碼和斷碼,則主機(jī)可通過(guò)查找唯一的掃描碼測(cè)定具體的按鍵。鍵盤(pán)上的每個(gè)按鍵的通斷碼組成掃描碼集,PS/2接口鍵盤(pán)默認(rèn)使用第二套掃描碼。
鍵盤(pán)遵循一種每幀包含11位的串行協(xié)議,這些位分別為:1個(gè)起始位,總為0;8個(gè)數(shù)據(jù)位,低位在前;1個(gè)校驗(yàn)位,奇校驗(yàn);1個(gè)停止位,總為1.為了減小系統(tǒng)開(kāi)銷,該設(shè)計(jì)采用中斷方式,在中斷程序中檢測(cè)掃描碼,其部分程序代碼如下:
為減小誤碼率,在判斷通碼后再檢測(cè)斷碼,使得DSP處理器獲得更準(zhǔn)確的判斷。
4 結(jié)論
本文介紹一種以DSP為核心的嵌入式人機(jī)接口設(shè)計(jì),經(jīng)實(shí)踐證明,該設(shè)計(jì)方案簡(jiǎn)沽實(shí)用,用途廣泛?;谠撓到y(tǒng)設(shè)計(jì)思路,根據(jù)實(shí)際需要和處理器特點(diǎn)會(huì)有多種設(shè)計(jì)方案,并結(jié)合BIOS系統(tǒng)的開(kāi)發(fā)將使多任務(wù)間的調(diào)度更方便。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論