??? 摘? 要: 研究了一種新型的32位高性能微控制器" title="微控制器">微控制器MC68HC376,提出了一種基于MC68HC376的應(yīng)用系統(tǒng)設(shè)計(jì)" title="系統(tǒng)設(shè)計(jì)">系統(tǒng)設(shè)計(jì)方案,對MC68HC376比較有特色的部分做了較深入的開發(fā)和討論,通過一種實(shí)際產(chǎn)品驗(yàn)證了該方案的可行性,。?
關(guān)鍵詞: 32位微控制器? MC68HC376? 可構(gòu)造時(shí)鐘模塊(CTM4)? 模數(shù)轉(zhuǎn)換器(QADC)? 系統(tǒng)設(shè)計(jì)? 測頻" title="測頻">測頻?
?
MC68HC376是Motorola公司推出的一種新型的32位高性能單片機(jī),具有極強(qiáng)的數(shù)據(jù)處理,、邏輯運(yùn)算和信息存儲能力,可以實(shí)現(xiàn)諸如人工智能、模糊控制等復(fù)雜的控制運(yùn)算模型,有很好的開發(fā)前景。其開發(fā)手段簡單,、方便。芯片支持BDM(Background Debug Mode)模式,通過簡易的專用電纜接口,而不需要使用傳統(tǒng)的仿真器和編程器就可以直接對微控制器系統(tǒng)進(jìn)行仿真開發(fā)和燒錄程序,。本文介紹了在電力系統(tǒng)保護(hù)中應(yīng)用MC68HC376的一種實(shí)際開發(fā)方案,。?
1 MC68HC376的基本特性?
??? MC68HC376具有速度快、并行處理能力強(qiáng),、可靠性高,、功耗低、功能強(qiáng)大等優(yōu)點(diǎn),。與目前常用的8位,、16位微控制器相比,其片內(nèi)資源極其豐富,適應(yīng)于各種控制場合;內(nèi)部集成度高,硬件可靠性和穩(wěn)定性強(qiáng),外部擴(kuò)展工作少,開發(fā)周期短。?
1.1 主要功能模塊?
MC68HC376為160腳的封裝結(jié)構(gòu),。其主要功能模塊包括32位CPU;系統(tǒng)集成模塊(SIM);4KB備用RAM;8KB片內(nèi)ROM;10位隊(duì)列式的模數(shù)轉(zhuǎn)換器(QADC),具有強(qiáng)大的數(shù)模轉(zhuǎn)換控制功能;隊(duì)列式串行通信模塊(QSM),可以方便地實(shí)現(xiàn)同步,、異步通信功能;可構(gòu)造時(shí)鐘模塊(CTM4),具有多種強(qiáng)大的定時(shí)、計(jì)數(shù)和脈沖調(diào)制功能;時(shí)間處理單元(TPU),可對各種事件進(jìn)行快速的智能處理;3.5KB靜態(tài)TPURAM;CAN控制模塊(TOUCAN),能方便地實(shí)現(xiàn)工業(yè)自動化等場合的局域網(wǎng)絡(luò)控制,。?
1.2 基本性能?
(1)24位地址總線,16位數(shù)據(jù)總線,支持32位數(shù)據(jù)操作;?
(2)2個(gè)8位雙功能I/O,1個(gè)7位雙功能I/O,16~44個(gè)模擬量輸入通道;?
(3)具有系統(tǒng)保護(hù)邏輯,同時(shí)可進(jìn)行時(shí)鐘監(jiān)視和總線監(jiān)視;?
(4)速度快,在4.194MHz晶振" title="晶振">晶振下,系統(tǒng)時(shí)鐘可達(dá)20.97MHz;?
(5)功耗低,具備低功率休眠功能;?
(6)支持高級語言和背景調(diào)試,。?
2 基于MC68HC376的系統(tǒng)設(shè)計(jì)?
2.1 片外Flash和RAM的擴(kuò)展?
MC68HC376有24位地址線和12位可編程的片選線。每根片選線可選通2KB~1MB的地址區(qū),因此MC68HC376具有很強(qiáng)的擴(kuò)展能力,。注意:CS[6~10]與ADDR[19~23]復(fù)用,。如何合理地安排這些地址線和片選線是系統(tǒng)優(yōu)劣的關(guān)鍵。?
??? 本系統(tǒng)擴(kuò)展了2片128KB的片外Flash 29C010A,2片128KB的片外RAM HM628128,擴(kuò)展電路如圖1所示(其中的片選信號均采用10kΩ的上拉電阻,圖1未畫出),。?
?
?
值得注意的是:Flash和RAM均由A[1~17]尋址,實(shí)際上是一種字尋址方式,最低位A0不用,。2片F(xiàn)lash和2片RAM的數(shù)據(jù)口分別接至MC68HC376的D[8~15]和D[0~7],對應(yīng)字的高低字節(jié)。在程序中應(yīng)注意存放高字節(jié)的芯片對應(yīng)字的低字節(jié)地址,。?
2.2 系統(tǒng)功能選擇電路設(shè)計(jì)?
與MCS-51和MCS-196系列單片機(jī)不同的是,MC68HC376復(fù)位時(shí)數(shù)據(jù)線的狀態(tài)決定控制器某些相關(guān)的功能和操作模式,。因此,根據(jù)實(shí)際系統(tǒng)的功能需要來選擇對應(yīng)的復(fù)位狀態(tài),是系統(tǒng)設(shè)計(jì)的一個(gè)重要環(huán)節(jié)。?
所有數(shù)據(jù)線都有內(nèi)部弱上拉電阻,復(fù)位時(shí)默認(rèn)狀態(tài)為高,對應(yīng)系統(tǒng)相應(yīng)的默認(rèn)功能;當(dāng)需要利用其非默認(rèn)功能時(shí),需要強(qiáng)制電路使相應(yīng)數(shù)據(jù)線在復(fù)位時(shí)電位為低,。相應(yīng)的模式選擇電路如圖2所示,。
?
?
為了避免復(fù)位時(shí)MCU與外部讀寫器件沖突,引入這里,將SIM模塊構(gòu)造成兩個(gè)通用的并行I/O口,將DB8和DB9在復(fù)位時(shí)強(qiáng)制為低;而片選腳分別作為片選或者輸出口,所以DB[0~7]保持默認(rèn)狀態(tài);因系統(tǒng)采用晶振作為外部參考頻率源,所以MODCLK腳也應(yīng)保持默認(rèn)狀態(tài)。?
2.3 時(shí)鐘部分的設(shè)計(jì)?
2.3.1 系統(tǒng)時(shí)鐘的獲得?
本系統(tǒng)采用晶振作為外部參考頻率源,電路和普通晶振電路一樣,。但要注意確保MODCLK腳在復(fù)位時(shí)為高,否則系統(tǒng)會出錯,。?
本系統(tǒng)采用Motorola公司推薦的4.194MHz晶振頻率,同時(shí)通過寫時(shí)鐘合成控制寄存器" title="控制寄存器">控制寄存器SYNCR中的相關(guān)位來獲得一定的系統(tǒng)時(shí)鐘。系統(tǒng)時(shí)鐘頻率與SYNCR的W位,、X位和Y[0~5]區(qū)的值有關(guān):Fsys=Fref×[4(Y+1)×2(2W+X)]/128?
當(dāng)寫入W=1,X=0,Y=100111時(shí),Fsys=5Fref=20.97MHz,。(注意:不要超過MC68HC376系統(tǒng)頻率的最大允許值20.97MHz),。?
2.3.2 外部濾波電路?
由于采用外部參考頻率源,所以需要在XFC腳上接入濾波電路。應(yīng)盡可能降低XFC腳的泄露電流,以提高時(shí)鐘的穩(wěn)定性和內(nèi)部鎖相環(huán)的性能,。濾波電路如圖3所示,。?
?
?
2.4 輸入輸出通道?
系統(tǒng)輸入輸出通道包括模擬量輸入、開關(guān)量輸入,、鍵盤輸入,、液晶顯示、控制量邏輯輸出等部分,。為了減小干擾,開關(guān)量輸入采取光電隔離方式,。運(yùn)用MC68HC376的CTM4模塊測量頻率,由QADC模塊實(shí)現(xiàn)隊(duì)列式的模數(shù)轉(zhuǎn)換功能。?
2.4.1 應(yīng)用CTM4進(jìn)行頻率測量?
Motorola公司的CTM4模塊包括總線接口單元BIUSM,、計(jì)數(shù)器分頻子模塊CPSM,、1個(gè)16位自由計(jì)數(shù)器FCSM、2個(gè)16位可自動重裝載計(jì)數(shù)器MCSM,、4個(gè)動作單元DASM,、4個(gè)脈寬調(diào)節(jié)子模塊PWMSM。?
CPSM通過對系統(tǒng)時(shí)鐘分頻向CTM4各個(gè)模塊提供6種不同的計(jì)數(shù)時(shí)鐘PCLK1~PCLK6,。在運(yùn)行CTM4各個(gè)單元之前,應(yīng)先設(shè)置并啟動CPSM,。注意,CPSM的構(gòu)造值關(guān)系到實(shí)際測頻和測周結(jié)果的計(jì)算。?
在實(shí)際測量中,為了提高測量精度,對于較高的頻率采用計(jì)數(shù)測頻法,對于較低的頻率采用測周測頻法,。外部信號經(jīng)過濾波,、過零比較后同時(shí)接入MC68HC376的CTM2C腳和CTD3腳,由軟件選擇判斷實(shí)際采用的方式。測頻子程序包括測周測頻部分(流程如圖4)和計(jì)數(shù)測頻部分(流程如圖5),。?
?
?
?
??? (1)通過測周間接測頻?
當(dāng)待測頻率不高時(shí),采用測周測頻方法,。DASM單元的特點(diǎn)在于不需要軟件的干預(yù)而自動高速、精確地捕捉CTD3腳上兩個(gè)連續(xù)的上(下)跳沿,兩次捕捉的時(shí)間差即為待測信號的周期,。?
??? (2)通過計(jì)數(shù)器直接測頻?
當(dāng)待測頻率較高時(shí),采用直接測頻方式,。用CMSM2作定時(shí)器,利用FCSM12對CTM2C引腳的方波信號進(jìn)行計(jì)數(shù),。?
(3)應(yīng)用CTM4測頻的幾個(gè)實(shí)際問題?
應(yīng)用CTM4測頻的程序結(jié)構(gòu)并不復(fù)雜,但有幾個(gè)實(shí)際問題值得注意:?
·啟動CTM4后,不應(yīng)立即啟動CPSM產(chǎn)生時(shí)鐘,否則會因?yàn)槌绦蛟谠O(shè)置相應(yīng)子單元時(shí)不同步而造成測量誤差,。?
·在完成一次測周后,一般應(yīng)選擇模式0停止DASM;但注意在停止DASM時(shí),實(shí)際對DASM還有一個(gè)復(fù)位動作,所以最好在關(guān)閉DASM前讀出捕捉寄存器A、B的值,。而一般的定時(shí)計(jì)數(shù)器都是在停止后讀值,。?
·在使用計(jì)數(shù)測頻方式時(shí),FCSMCNT在不溢出的狀態(tài)下最大可計(jì)量216Hz的頻率。這對更高頻率的測量是不夠的,。設(shè)置一個(gè)溢出計(jì)數(shù)器N,在每次溢出中斷時(shí)加1計(jì)數(shù),同時(shí),因?yàn)镃TM2C腳最大允許輸入為Fsys/4,所以在20.97MHz的系統(tǒng)頻率下,N使用8位計(jì)數(shù)器就可以滿足要求(FCSMCNT溢出中斷處理程序的流程圖略),。?
·判斷是采用計(jì)數(shù)測頻還是測周測頻的頻率定值,應(yīng)該以減少測量誤差為準(zhǔn)則,需要對理論誤差進(jìn)行計(jì)算,同時(shí)根據(jù)實(shí)際測量情況進(jìn)行調(diào)整。?
2.4.2 利用QADC模塊實(shí)現(xiàn)A/D轉(zhuǎn)換?
QADC的主要功能模塊包括兩個(gè)隊(duì)列(QUEUE),、命令字(CCW)表,、結(jié)果字表和一些相應(yīng)的控制寄存器,。QADC的最大特點(diǎn)是能夠通過寄存器和命令字組織待轉(zhuǎn)換的模擬量,使其按一定的隊(duì)列形式在一定條件下觸發(fā)轉(zhuǎn)換序列,并將結(jié)果按一定的格式存放于結(jié)果字表中。在實(shí)現(xiàn)A/D轉(zhuǎn)換時(shí)需要進(jìn)行的工作如下:?
(1)構(gòu)造相關(guān)的管腳?
QADC的管腳可作為模擬量I/O,、數(shù)字量I/O或多路復(fù)用功能腳,。在使用相應(yīng)管腳之前要先對其進(jìn)行構(gòu)造。本系統(tǒng)中16路模擬輸入口已經(jīng)夠用,不需多路復(fù)用(可達(dá)44路),因此先對控制寄存器QACR0中的MUX位清零,。相應(yīng)管腳的引用名稱為AN[52~59],、AN[48~51]、AN[0~3],。最后在數(shù)據(jù)方向寄存器DDRQA中將相應(yīng)位清零,即管腳設(shè)為輸入,。?
(2)構(gòu)造隊(duì)列和命令字表?
先通過控制寄存器QACR1和QACR2中的MQ1和MQ2區(qū)選擇隊(duì)列1和2工作方式。為減少軟件干涉,、提高轉(zhuǎn)換程序效率,設(shè)置MQ1=MQ2=101,即軟件觸發(fā)的連續(xù)掃描方式,。根據(jù)所測頻率經(jīng)過軟件倍頻后可以很容易地對相關(guān)量進(jìn)行跟蹤采樣,而不需要外部鎖相跟蹤電路。然后,按一定的順序和優(yōu)先級來組織隊(duì)列,。?
由于沒有多路復(fù)用,這里用16個(gè)轉(zhuǎn)換命令字(CCW)分別控制16路輸入通道,。在CCW中寫入通道號、采樣輸入時(shí)間選擇和放大模式選擇,。轉(zhuǎn)換命令字表中最多可有40個(gè)CCW,。?
(3)構(gòu)造中斷和結(jié)果讀取?
在QADC結(jié)構(gòu)寄存器QADCMCR中寫入中斷判決號,注意中斷判決號應(yīng)該是非零且唯一的;寫隊(duì)列控制寄存器QACR1(2),設(shè)置中斷允許位CIE1、CIE2;寫QADC中斷寄存器,通過IRLQ1(2)區(qū)設(shè)置隊(duì)列1(2)的中斷優(yōu)先級,通過IVB區(qū)提供QADC中斷向量號的高6位,。?
當(dāng)隊(duì)列轉(zhuǎn)換完成后申請中斷,中斷服務(wù)程序從結(jié)果字表中讀取轉(zhuǎn)換結(jié)果,。然后清除隊(duì)列狀態(tài)寄存器QASR中的中斷標(biāo)志位CF1、CF2,準(zhǔn)備下一輪隊(duì)列轉(zhuǎn)換,。?
2.5 通信口電路?
本系統(tǒng)包括RS-232接口和CAN接口,。RS-232接口通過隊(duì)列式串行模塊QSM和外部的MAX232芯片連接實(shí)現(xiàn)。CAN接口通過TouCAN模塊與外部的CAN250芯片連接實(shí)現(xiàn),。?
3 應(yīng)用實(shí)例?
應(yīng)用該方案的數(shù)字式低頻低壓控制裝置RSA800,通過實(shí)時(shí)測量電力線的電流,、電壓和頻率,進(jìn)行綜合快速的分析判斷,從而形成保護(hù)決策。該裝置已通過電力工業(yè)部電力設(shè)備及儀表質(zhì)量檢驗(yàn)測試中心的產(chǎn)品型式試驗(yàn),各項(xiàng)指標(biāo)均合格,。通過國家電力公司主持的產(chǎn)品鑒定,鑒定結(jié)果為:該裝置技術(shù)先進(jìn),、性能可靠、適應(yīng)性強(qiáng),達(dá)到國內(nèi)同類裝置領(lǐng)先水平,。這充分驗(yàn)證了該方案的可行性,。?
本設(shè)計(jì)方案充分利用MC68HC376內(nèi)部功能,外部結(jié)構(gòu)簡單。系統(tǒng)能對多種模擬量,、開關(guān)量以及頻率信號做精確的測量,。根據(jù)不同的應(yīng)用程序可靈活實(shí)現(xiàn)各種應(yīng)用控制功能,應(yīng)用面廣、可再開發(fā)性強(qiáng),。系統(tǒng)性能高,可實(shí)現(xiàn)高級控制算法,通過RS-232和CAN接口可方便地實(shí)現(xiàn)各種聯(lián)合控制功能,。系統(tǒng)穩(wěn)定,、可靠。?
參考文獻(xiàn)?
1 Motorola.Inc. MC68336/376 user′s manual. 1996?
2 Motorola.Inc. CPU32 reference manual. 1996?
3 Motorola. Inc. CTM configurable timer module reference manual. 1996?
4 Motorola.Inc. QADC queued analog-to-digital converter reference manual. 1996?
5 Motorola. Inc. SIM system integration module reference manual. 1996?
6 Motorola.Inc.QSM queued serial module reference manual.1996?
7 王福瑞. 單片微機(jī)測控系統(tǒng)設(shè)計(jì)大全[M].北京:北京航空航天大學(xué)出版社,1999?
8 李 華. MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出版社,1993