用單片機實現(xiàn)可編程邏輯器件的配置
3.2 軟件設計
在軟件編程時,使用了串行口移位寄存器輸入輸出方式。本系統(tǒng)只需用到輸出方式,串行數據通過RXD引腳輸出,而在TXD引腳輸出移位時鐘。當一字節(jié)數據寫入串行數據緩沖器SBUF時,就開始發(fā)送。在此期間,發(fā)送控制器送出移位信號,使發(fā)送移位寄存器的內容右移一位,直至最高位(D7位)數字移出后,停止發(fā)送數據和移位時鐘脈沖。RXD、TXD時序如圖3。由圖3可知,它可以用來模擬配置時序。發(fā)送完一字節(jié)數據后,硬件置發(fā)送標志位TI為1,向CPU申請中斷。若CPU響應中斷,則從0023H單元開始執(zhí)行串行中斷服務程序。
為了提高配置速度,單片機程序用匯編語言編寫。單片機上電后使nCONFIG腳由低到高復位待配置PLD;當判斷到nSTATUS為高后,開始從外部FLASH存儲器取數據串行移位。配置過程中,查詢CONF_DONE。一旦為高,配置完成,但還要送40個DCLK脈沖,PLD才能進入用戶工作狀態(tài)。
用戶設計PLD程序經MAXPLUS II或QUARTUS編譯后將產生后綴后為.sof的SRAM目標文件。該文件含有除配置數據以外的控制字符,不能直接寫入到PLD中去,需要利用軟件的編程文件轉換功能將文件轉換成.rbf(Raw Binary File)十六進制文件。把.rbf文件燒寫到存儲器中,單片機通過MOVX指令讀入后,串行移位到PLD。
部分asm語言源程序如下:
NCONFIG BIT P1.5
CONFDONE BIT P.6
NSTATUS BIT P1.7
ORG 000h
……
CLR SM0
CLR SM1 ;SM0,SM1為0,串口工作于方式0
CLR SM2 ;串口波特率為fosc/4
CLR REN
ANL 8EH,#0f8h ;地址8EH是CKCON單元,MD0、MD1、MD2清0
評論