摘 要: 對智能儀器" title="智能儀器">智能儀器系統中的在系統編程" title="在系統編程">在系統編程(ISP)技術及其在儀器系統中在線編程的實現、應用前景等進行了分析。介紹了P89C669相對于傳統51系列單片機的增強特性,并給出P89C669快閃存儲器的ISP實現電路和具體方法。結合實際介紹了一種可以在系統編程的智能鍵盤、數碼管顯示系統。
關鍵詞: 在系統編程(ISP) P89C669 數碼管 快閃存儲器 單片機
在使用傳統的單片機開發應用系統時,通常需要對單片機片內資源進行擴展以滿足系統的功能要求。這就增加了系統的開發難度和開發成本,更重要的是由于擴展使硬件結構變得復雜而降低了系統的可靠性。隨著技術的進步,可以采用新型技術彌補以上不足。
P89C669是基于PHILIPS半導體新51MX(存儲器擴展)內核的首類Flash微控制器代表,它包含96KB的Flash程序存儲器" title="程序存儲器">程序存儲器、2KB的數據SRAM、一個可編程計數器陣列(PCA)、可配置成不同時間范圍的看門狗定時器(通過SFR的位設置)和兩個增強型UART。PHILIPS半導體的5lMX內核是一種加速的80C51" title="80C51">80C51結構,指令執行速度2倍于標準的80C51器件。5lMX的線性地址經擴展后可支持高達8MB的程序存儲器和8MB的數據存儲器;兼容80C51的全部程序代碼,使設計者可繼續使用80C51的開發工具,無需移植到一個新的、不習慣的結構上;保留了80C51總線的兼容性,使80C51接口外圍電路和專用集成電路(ASIC)得以繼續使用。P89C669提供更強大的功能,大大提高了系統性能并降低了系統開銷。結合增強的特性,P89C669利用嵌入式存儲器來管理存儲器的擴展,摒除了軟件平臺的使用。擴展的程序存儲器便于設計者利用高級語言(如C語言)來編寫更復雜的程序代碼,而不必再努力將程序長度限制在傳統的64KB范圍內。這些特性將大大提高64KB范圍內的C語言代碼的執行效率。P89C669包含一個非易失性Flash程序存儲器,可用于并行編程以及串行在系統編程和在應用中編程。ISP允許用戶在微控制器正在使用時下載新的代碼。而且可利用ROM中的默認串行裝載程序(引導裝載程序)通過UART來實現,或者使用Flash的裝載程序。這就大大地提高了系統軟件更新的效率和可靠性;在應用中編程意味著微控制器可在系統中取新程序代碼和對自身進行重編程,以實現調制解調器連接范圍內的遠程編程。
顯示和鍵盤控制是智能應用系統最常用的組成模塊。zlg7289A是一片具有串行接口的可同時驅動8位共陰式數碼管(或64只獨立LED)的智能顯示驅動芯片,該芯片同時還可連接多達64 鍵的鍵盤矩陣,單片即可完成LED 顯示及鍵盤接口的全部功能。
1 系統實現的功能
(1) 在智能儀器應用過程中需要對應用系統軟件功能更新時,不必把P89C669微控制器從系統中取出,可以直接通過串行接口對其編程,實現系統軟件的在系統編程進行更新。
(2) 由CPU控制的zlg7289A顯示、鍵盤接口芯片可以實現由鍵盤輸入對數碼管(LED)的靈活控制,顯示常用字母和數值,方便地嵌入各種智能儀器系統中用于顯示儀器的相關信息。
2 系統功能的實現方案
2.1 ISP技術簡介
智能儀器系統是基于單片機技術的,是典型的嵌入式系統。因此,單片機技術的發展對智能儀器的發展起著重要的作用;同樣,智能儀器系統的發展也對單片機的發展提出了更高的要求。快閃存儲器比普通的EPROM存儲器的改進之處是不僅可以讀,而且可以用軟件快速地擦除和寫入,使得ISP技術成為現實。ISP技術(即在系統內可編程技術),是指電路板上的空白器件可以編程寫入最終用戶代碼,而不需要從電路板上取下器件,已經編程的器件也可以用ISP方式擦除或再編程。
2.2 在系統編程的實現
P89C669的在系統編程通過標準RS-232C串口來完成。它是一種內嵌的在線可編程技術,只需要增加少量的電路板面積和元件,所以只要微機配備了RS-232C串口,就可以直接通過下載電纜來完成程序的下載,使用非常方便。具備ISP功能的智能儀器系統和普通智能儀器系統的設計沒太大的區別,僅僅在Rs-232c串口的設計上做一下小的變動即可,ISP用到5個管腳:TXD、RXD、VSS、Vcc和VPP,對于P89C669來說,VPP=5V即可。在系統編程硬件電路如圖1所示。
由于P89C669編程狀態和正常運行狀態的某些管腳定義不一樣,因此在系統上可以設置一個雙刀雙置開關,當此開關位于上端時,為正常運行狀態,此時的串行口為正常運行方式,其管腳如下連接:VPP接+5V;/PSEN 和ALE均浮空;當雙刀雙置開關位于下端時,P89C669便退出正常運行方式,進入ISP運行狀態,程序計數器切入固件空間為ISP做好準備。此時的管腳如下連接:VPP接+5V,/PSEN接高電平(參考電平為5V),AlE 浮空。
2.3 顯示、鍵盤功能的實現
zlg7289A內部含有譯碼器可直接接受BCD 碼或16 進制碼,并同時具有兩種譯碼方式;而且還具有多種控制指令如消隱﹑閃爍﹑左移﹑右移﹑段尋址等;此外zlg7289A 具有片選信號,因此稍作擴展可方便地實現多于8 位的顯示或多于64 鍵的鍵盤接口。
?
(1)zlg7289A引腳說明如表1所示。
(2)串行接口通信。zlg7289A 采用串行方式與微處理器通信。串行方式通信時,串行數據從DATA 引腳送入芯片并由CLK端同步,當片選信號變為低電平后,DATA引腳上的數據在CLK 引腳的上升沿被寫入zlg7289A 的緩沖寄存器。
(3)指令類型。zlg7289A 的指令結構有3種類型:①不帶數據的純指令,其寬度為8位,即微處理器需發送8個CLK脈沖。②帶有數據的指令,其寬度為16位,即微處理器需發送16個CLK脈沖。③讀取鍵盤數據指令寬度為16位,前8位為微處理器發送到zlg7289A的指令,后8位為zlg7289A返回的鍵盤代碼。執行此指令時zlg7289A的DATA端在第9個CLK脈沖的上升沿變為輸出狀態并于第16個脈沖的下降沿恢復為輸入狀態,等待接收下一個指令。
(4)硬件連接方案。
①本系統采用P89C669微處理器作為zlg7289的中央處理器,這種微處理器有4個雙向口。通常情況下,P0口和P2口作為地址和數據總線使用,因而采用P1的4個引腳P1.0、P1.1、P1.2、P1.3分別控制zlg7289的/CS、/KEY、DIO和CLK引腳。
②數碼管常用的連接方式有:共陽式連接和共陰式連接。根據zlg7289的內部特性,數碼管采用共陰式連接。系統顯示和鍵盤控制的硬件連接如圖2所示。
(5)硬件連接的注意事項
①zlg7289A連接共陰式數碼管,應用中無需用到的數碼管和鍵盤可以不連接。省去的數碼管和對數碼管設置的消隱屬性均不會影響鍵盤的使用。
②如果不用鍵盤則系統電路中連接到鍵盤的8只10kΩ電阻和8只100kΩ下拉電阻" title="下拉電阻">下拉電阻均可以省去。如果使用了鍵盤,則電路中以上2只電阻均不得省略。除非不接數碼管,否則串入DP及SG-SA連線的8只電阻均不能省去。
③實際應用中,8只下拉電阻和8條鍵盤連接位選線DIG0~DIG7的8只位選電阻應遵從一定的比例關系,下拉電阻應大于位選電阻的5倍而小于其50倍。典型值應為10倍,下拉電阻的取值范圍是10~100kΩ,位選電阻的取值范圍是1~10kΩ。
④在不影響顯示的前提下,下拉電阻應盡可能地取較小的值。這樣可以提高鍵盤部分的抗干擾能力。由于采用循環掃描的工作方式,如果采用普通的數碼管亮度有可能不夠,則應采用高亮度或超高亮型號的數碼管或者另加驅動電路來解決這個問題。
⑤數碼管的尺寸不宜選得過大,一般字符高度不超過1英寸。如使用大型的數碼管應使用適當的驅動電路。
⑥zlg7289A需要一外接晶體振蕩電路供系統工作,其典型值分別為:F=16MHz,C=15pF。如果芯片無法正常工作,請首先檢查此振蕩電路。在印刷電路板布線時,所有元件尤其是振蕩電路的元件應盡量靠近zlg7289A,并盡量使電路連線最短。
⑦zlg7289A的RESET復位端在一般應用情況下可以直接和Vcc 相連,在需要較高可靠性的情況下可以連接一外部復位電路或直接由MCU 控制。
⑧在上電或RESET端由低電平變為高電平后,zlg7289A大約要經過18~25ms的時間才會進入正常工作狀態。
⑨程序中盡可能地減少CPU對zlg7289A的訪問次數,可使程序更有效率。因為芯片直接驅動LED數碼管顯示電流較大且為動態掃描方式,如果該部分電路電源連線較細較長可能會引入較大的電源噪聲干擾。若在電源的正負極并入一個47~220μF的電容可以提高電路抗干擾的能力。
⑩如果有兩個鍵同時按下,zlg7289A將只能給出其中一個鍵的代碼,因此zlg7289A不適于應用在需要兩個或兩個以上鍵同時按下的場合。
3 結論與展望
以上所描述的在系統編程電路圖中,將P89C669的P1.0~P1.3與顯示、鍵盤組成部件的電路圖中,將zlg7289A芯片的串行控制口線連接到一起后便形成了完整的可在系統編程的鍵盤、數碼管顯示系統。該系統顯示模塊結構簡單,只用zlg7289單片即可完成鍵盤、數碼管顯示控制的全部功能。該系統可以用于現有各種智能儀器的實時數據顯示,而且根據實際要求運用ISP技術可以進行系統在線升級。由于P89C669中含有快閃存儲器,存儲空間可達96KB,因而避免了擴展片外的程序存儲器,降低了系統開發和改進的工作量,更重要的是提高了系統工作的可靠性。
參考文獻
1 P89cslRc+/P89cslRo+. 飛利浦半導體出廠資料,2004
2 李廣弟.單片機基礎.北京:北京航空航天大學出版社,2002
3 何立民.MCS-51系列單片機應用系統設計.北京:北京航空航天大學出版社,2000
4 靳 桅.單片機原理及應用—C51編程技術.成都:西南交通大學出版社,2004