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