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