楊亦紅
摘 要:文章使用FPGA器件,結合包括TSK51等多種IP軟核實現了基于FPGA的嵌入式電子系統的基本人機接口(HMI)的硬件設計。在線纜檢測系統的應用證明,該系統能夠將在單芯片上就解決人機界面硬件電路的驅動,有助于完成傳統51單片機系統的包括人機接口界面的完整平臺移植,對有效地降低系統硬件成本。
關鍵詞:人機接口界面HMI;FPGA的嵌入式系統;研究
引言
隨著大規模邏輯集成電路設計技術的進步和制造工藝水平的提高,單個芯片上的邏輯門數的增加,基于FPGA為控制核心的嵌入式系統的設計已逐漸流行。這時,人機接口界面(HMI)在傳統嵌入式系統中,基于微處理器CPU管理的工作方式能否沿用到基于FPGA的嵌入式系統中來,將會影響到系統開發的效率。文章在Altium電子設計軟件平臺上,通過從FPGA中引入IP核進行單芯片系統(SOC)電路設計,可用來完成傳統51單片機系統的包括人機接口界面的完整平臺移植,具有一定的實踐意義。
1 結構與工作原理
電子電路設計軟件Altium允許在FPGA中設計、實現及調試基于微處理的數字設計。這可以通過采用原理圖輸入、VHDL設計輸入或混合輸入方法設計電路,經綜合和適配等編譯動作,并下載到處理器中后,FPGA中就可實現一個基于微處理器的電子系統。文章采用該軟件提供的TSK51 IP核、RS232 IP核、PS2 IP核及LCD IP核等完成了包括鍵盤、通信、顯示等模塊人機接口的基本嵌入式系統的設計,該設計可以完美復用傳統基于51單片機的系統電路。
1.1 IP核模塊
1.1.1 TSK51核
TSK51核是一個全功能的采用哈佛結構的8位微處理器,它執行ASM51匯編語言指令,其指令系統與傳統80C31兼容,具有軟件和硬件中斷、一個全雙工串行通信接口和一個定時器系統。其技術特性包括:(1)控制器:8位指令解碼器。算術邏輯單元:8位算術運算、8位邏輯運算、布爾運算、8×8乘法運算、8/8除法運算。(2)32位輸入輸出端口:4個8位輸入輸出端口。兩個16位定時器/計數器。(3)全雙工模式串行接口:固定波特率的同步模式、可變波特率的8位UART模式、固定波特率的UART模式、可變波特率的9位UART模式、多處理器通信。(4)中斷控制器:兩組優先級。(5)內部存儲器接口:可尋址多達64KB的內部程序存儲器空間、可尋址多達256B的讀/寫數據存儲器空間。外部存儲器接口:可尋址多達64KB的外部程序存儲器空間、可尋址多達64KB的外部數據存儲器空間。
因此可以使用TSK51進行設計的FPGA電路,可以完全使用8051單片機的編程知識進行設計。
1.1.2 PS2控制器IP核
PS2控制器IP核,可以實現PS2控制器與PS2設備之間的雙向通信:
(1)PS/2設備向PS2控制器傳輸數據。當控制器在空閑狀態(PS2DATA=1,PS2CLK=1)時,PS/2設備隨時可以向控制器發送數據,然后PS/2設備在等半個PS2CLK周期后才開始傳輸。傳輸按數據幀方式進行,每幀包括一字節數據,幀數據取決于需要傳輸的消息的字節數。
(2)PS2控制器向PS/2設備傳輸數據。當主MCU要通過PS2控制器向PS/2設備發送一個命令時,STROBE引腳要至少維持一個外部系統時鐘周期(CLK input),這將使PS2控制器從DATAI線上取得要傳輸的數據。要激活傳輸,PS2控制器需要進入"主機發送請求狀態",這將通過以下步驟達成:a.首先PS2CLK維持至少一個時鐘周期(進入禁止傳輸狀態);b.PS2DATA然后變低(提供欲發送幀的Start位);c.然后釋放PS2CLK線(仍然保持PS2DATA為低)。
1.1.3 LCD 16×2A控制器
采用有限狀態機實現,當設備復位后,將執行一系列LCD初始化動作。控制最大的操作頻率是80MHz。其工作過程如下:
(1)控制器復位。當RST信號有效時,BUSY信號也變為有效,以指示控制器處于復位狀態,不可以被使用。當RST無效時,控制將執行KS0066U兼容LCD面板的標準初始化動作序列。
(2)LCD初始化動作序列。全部初始化階段下BUSY信號是有效的,結果是所有寫到控制器的數據將被忽略。a.定義指令集-這一狀態下,LCD控制器被編程設置數據長度、使用幾行、及使用什么字體。控制器分別設置這些值為8位、2行、和5×8像素。b.等待39us。c.顯示ON/OFF控制-在這一狀態下,LCD控制器被編程設置顯示、光標和光標閃爍設置:Display-ON、Cursor-OFF、光標閃爍-OFF。d.等待39us。e.清顯示-這一狀態下,ASCII碼20h(空格字符)將寫入到LCD 面板。f.DDRAM(數據存儲器)和字符地址設為0h(面板的左上角)。這一位置后,所有地址有一個空格字節,因此LCD面板被清空。g.等待39us。g.初始化完成-BUSY變無效。之后可以使用LCD面板了。
(3)將數據顯示在LCD面板上。當BUSY無效時,LCD控制器等待數據,準備在LCD面板上顯示一個新的字符,這就是等待數據狀態。要發起顯示操作,ADDR, DATA 和 LINE信號必須是穩定的,且STROBE 端口用于觸發操作。當STROBE信號有效時,將進行如下動作:a.LCD面板上的字符位置(由4-bit ADDR總線定義),被裝入到控制器的地址寄存器 (ADDREG)。b.字符顯示的行(由LINE信號定義),被裝入到控制器行選擇寄存器(LINESEL)。c.實際要顯示的字符(由8位數據總線定義), 被裝入到控制器數據寄存器(DATREG)。d.控制器FSM然后進入‘設置地址狀態,BUSY信號同時變為有效。ADDREG和LINSEL寄存器的內容被傳遞到LCD面板。e.控制器然后等待39us,接著,FSM進入‘顯示字符狀態。f.這時無論DATREG中的什么數據也都能寫入到LCD字符存儲器中。g.控制器等待LCD面板完成操作,然后回到‘等待數據狀態,等待顯示下一字符。BUSY信號這時變為無效。
2 系統軟件設計
所有IP核都作為FPGA內部的組成模塊,TSK51核作為兼容80C31指令系統的CPU核,起到主處理器的作用。RAMS_8*2K是其內部RAM,在其上可以移植傳統51系統的所有代碼。程序的主體結構如下所示。
void main(void)
{
……
InitInterrupt0();
InitLCD(); LCDClear(0); LCDClear(1);
LCDDisplayLine("Init KBRD...", 0, 12, 0);
KeyboardInit();
while (keyboard_sent_init_sequence == 0) { }
LCDDisplayLine("KBRD Initialized",0, 16, 0);
while (1)
{
//在些檢測按鍵并顯示
LCDClear(0);
displaychar = KeyboardMapKey(key);
LCDDisplayChar(displaychar);
//……類似方式顯示其它內容
}
}
3 結束語
文章通過IP核,在基于FPGA的嵌入式系統中實現了基本人機接口界面(HMI)的設計,由于其具有兼容51系統的指令集的特點,可以完美地實現傳統基本51CPU的嵌入式系統的平臺移植,本系統承擔了線纜檢測系統中的主控制器,運行效果良好。這一方案對于早期設備的改進和再創新具有實際意義。
參考文獻
[1]葉明.基于HMI控制系統中數據采集技術的應用與研究[D].武漢理工大學,2006.
[2]劉凱.基于FPGA的系統設計和應用研究[D].國防科學技術大學,2005.
[3]龔宇潔.嵌入式HMI組態軟件研究與設計[D].武漢理工大學,2009.
[4]馬偉民.基于組件技術的人機界面(HMI)研究[D].杭州電子科技大學,2009.