微控制器范文
時(shí)間:2023-03-27 22:13:42
導(dǎo)語:如何才能寫好一篇微控制器,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
【關(guān)鍵詞】微控制器;軟硬件;抗干擾設(shè)計(jì)
隨著微控制器在各個(gè)領(lǐng)域中的廣泛應(yīng)用,其對于現(xiàn)代工業(yè)的貢獻(xiàn)也越來越大。微控制器的抗干擾性能好壞,是影響著工業(yè)生產(chǎn)安全和日常使用感受的重要因素,因此必須要高度重視。然而,由于周圍環(huán)境的復(fù)雜情況,微控制器工作時(shí)會(huì)受到多重干擾。
一、干擾造成的軟件問題
微控制器內(nèi)部的計(jì)數(shù)器的PC狀態(tài)通常指向我們需要其指定的地址空間的固定位置,然而,若PC狀態(tài)被破壞,程序喪失了穩(wěn)定性,系統(tǒng)就會(huì)失控,CPU執(zhí)行的指令也會(huì)隨之發(fā)生錯(cuò)誤,持續(xù)性的長期錯(cuò)誤,就會(huì)導(dǎo)致程序最后“死機(jī)”而無法運(yùn)行。CPU與外部設(shè)備的接口非常敏感,一旦發(fā)生干擾,二者之間的查詢-中斷的工作方式就會(huì)被打亂。CPU不斷的進(jìn)行中斷操作,重復(fù)到一定程度,就會(huì)引發(fā)系統(tǒng)的“死鎖”結(jié)果。軟件控制狀態(tài)受到干擾,造成輸出條件發(fā)生偏差和錯(cuò)誤,從而引起軟件控制的邏輯處理失靈。
二、軟件處理干擾問題的對策
(一)設(shè)計(jì)程序進(jìn)行自檢
工程師針對微控制器內(nèi)部的某些單元設(shè)定特殊標(biāo)志,設(shè)計(jì)隨開機(jī)自動(dòng)啟動(dòng)的自檢程序,對微控制器進(jìn)行不斷的循環(huán)檢測,以保證系統(tǒng)能夠一直正常運(yùn)行。
(二)冗余技術(shù)
冗余技術(shù)氛圍指令冗余和數(shù)據(jù)冗余兩種方式。
1.指令冗余
程序指令多為雙字節(jié)、三字節(jié)或多字節(jié),超過單字節(jié)的指令在微控制器的內(nèi)部計(jì)數(shù)器發(fā)生PC值混亂時(shí)容易出現(xiàn)“亂飛”現(xiàn)象,頻繁發(fā)生程序死循環(huán)。因此,操作指令應(yīng)該盡量多用單字節(jié),并在適當(dāng)?shù)牡胤竭M(jìn)行人為重寫操作或靈活使用NOP指令,通過指令冗余的方法來避免干擾造成的“死機(jī)”。
在雙字節(jié)或三字節(jié)指令后緊跟著使用NOP指令,數(shù)量為兩條最佳。這樣可以保證PC數(shù)值指向操作數(shù)時(shí),后面的指令不會(huì)被執(zhí)行。需要注意的是NOP指令的數(shù)目問題,若NOP指令過多,將會(huì)影響程序的運(yùn)行速度,因此,需要根據(jù)實(shí)際情況每隔幾條指令插入一條或一對NOP指令。如在跳轉(zhuǎn)指令(LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ)前或一些重要指令(SETB EA)前插入。
然而,插入NOP指令的操作沒有修正之前的錯(cuò)誤,隨著錯(cuò)誤的不斷累積,最終仍會(huì)影響系統(tǒng)運(yùn)行,因此,需要編寫一些重要指令(常用RET、RETI、LCALL、LJMP、JZ、JC等),以使得系統(tǒng)遇到干擾時(shí)不會(huì)失控,繼續(xù)遵循著引導(dǎo)方向運(yùn)行。
2.數(shù)據(jù)冗余
RAM是微控制器參數(shù)所存儲(chǔ)的區(qū)域,分為運(yùn)行和備份兩個(gè)部分,微控制器斷電易造成RAM的數(shù)據(jù)破壞,從而發(fā)生CPU執(zhí)行錯(cuò)亂或系統(tǒng)無法運(yùn)行的問題。因此,可以通過備份操作來保證RAM數(shù)據(jù)的保留,系統(tǒng)復(fù)位后,利用備份文件恢復(fù)RAM數(shù)據(jù)。RAM的備份區(qū)域建議再分,建立雙重或多重備份,其中一份作為片內(nèi)RAM存在,其它備份作為片外RAM,這樣在片內(nèi)RAM被堆棧操作沖毀數(shù)據(jù)時(shí),可以保證備份數(shù)據(jù)的可用性。總之,備份數(shù)越多,就越可靠。還可以在RAM區(qū)設(shè)計(jì)專門程序進(jìn)行數(shù)據(jù)的檢測和自救,增加鎖定操作,實(shí)現(xiàn)多重保證。
(三)利用軟件技術(shù)制作陷阱
本文之前提到的指令冗余方法適用于PC指向還處于程序區(qū)的情況,若PC指向已經(jīng)飛到非程序區(qū),就只能用軟件技術(shù)來制作陷阱了,即設(shè)置一個(gè)軟件陷阱(錯(cuò)誤地址為ERR時(shí)使用NOP、LJMP ERR指令),將錯(cuò)誤的程序引入專門的地址,以便程序可以對出錯(cuò)問題進(jìn)行處理。
軟件陷阱的設(shè)置有特定的位置:
1.正常程序不會(huì)執(zhí)行到的地方。
2.表格尾部:為了保證表格的連續(xù)性。
3.不在使用狀態(tài)的EPROM單元。
4.不在使用狀態(tài)的中斷向量區(qū)。
(四)“看門狗”軟件
這種技術(shù)方法適用于指令冗余和軟件陷阱都不起作用的情況。看門狗軟件可以模仿人工方式,對程序?qū)嵭斜O(jiān)視,一旦發(fā)生“死循環(huán)”現(xiàn)象,就能強(qiáng)迫程序返回特定區(qū)域,再通過其他處理程序,使系統(tǒng)恢復(fù)正常。需要注意CPU會(huì)受到PC值影響故看門狗不能依賴CPU,必須能夠獨(dú)立操作。看門狗主要通過周期性的定時(shí)與CPU進(jìn)行聯(lián)系來確保系統(tǒng)正常運(yùn)行。CPU一卡機(jī)就能發(fā)現(xiàn),以保證系統(tǒng)能及時(shí)復(fù)位。以MCS-51型號(hào)為例,晶振頻率設(shè)為6MHZ,可編程:
(五)程序自救法
程序自救法即采用指令冗余和軟件陷阱還有看門狗技術(shù)來解決CPU失控的問題。遇到干擾的入侵,程序會(huì)自動(dòng)恢復(fù)至初始入口。
(六)濾波法
疊加的噪聲干擾因?yàn)槠潆S機(jī)性的特征,容易造成測量偏差很大,因此需要通過濾波法進(jìn)行降噪處理。低通濾波方法和滑動(dòng)平均濾波可以抑制周期性的干擾,中位值濾波則抑制偶然的波動(dòng)干擾或儀器不穩(wěn)造成的脈沖干擾。
(七)躲避法
鑒于軟件操作比硬件操作要簡單方便,因此面對電源過壓、尖峰干擾等強(qiáng)干擾發(fā)生時(shí),可以采取躲避法。
在系統(tǒng)與大功率負(fù)載發(fā)生接通或中斷操作時(shí),利用軟件設(shè)計(jì)停止CPU運(yùn)行,避其鋒芒,這樣可以減少系統(tǒng)的故障頻率。
如CHMOS微控制器具有待機(jī)、掉電兩種模式,電源控制器PCON的DO值指向1則變成待機(jī)模式,計(jì)數(shù)器、指針、RAM信息自動(dòng)保存;若要退出待機(jī)狀態(tài),可用硬件復(fù)位或RETI指令。
(八)開關(guān)量軟件
開關(guān)量軟件主要是為了排除占絕大多數(shù)的瞬時(shí)輸入故障,針對離散尖脈沖干擾。
三、微控制器干擾問題的硬件處理――電磁兼容設(shè)計(jì)
微控制器抗干擾能力受到其自身電磁兼容能力的限制,想要解決微控制器的干擾問題,從硬件角度來說,就是要進(jìn)行科學(xué)的電磁兼容設(shè)計(jì)。
(一)抑制客觀存在的干擾源
抑制干擾源的前提是找到干擾源,然后盡力降低干擾源的du/dt和di/dt,或者為繼電器加增續(xù)流二極管,為可控硅降低噪聲。
圖1
圖2
(二)切換耦合途徑的干擾
1.電源、接地線抗干擾
微控制器電源多余電網(wǎng)接通,電網(wǎng)中大型設(shè)備的起停會(huì)產(chǎn)生電壓改變,對微控制器形成干擾。這種電源耦合干擾占干擾原因的一大半,因此,需要將電源做好。在變壓器可以加增一個(gè)濾波器,過濾掉較強(qiáng)的傳導(dǎo)干擾和脈沖干擾,并限制正常電壓;或者在電路板布線時(shí)選用粗直徑的電線來降低耦合噪聲,進(jìn)一步減少噪聲對電源線和地線的干擾。接地電路的點(diǎn)多少以1MHZ、10MHZ為分界線,不足1MHZ,介于1-10MHZ與超過10MHZ的接地形式如圖1所示。
2.隔離
隔離方式抗干擾可以通過電磁或光電方式來實(shí)現(xiàn)。電磁隔離主要通過變壓器來切換環(huán)路造成獨(dú)立無擾。光電隔離則通過光電耦合進(jìn)行無導(dǎo)線傳遞電流,這一方式可以抑制尖脈沖與噪聲干擾(見圖2)。
3.屏蔽
銅鋁等材質(zhì)的封閉金屬盒可以抑制電場干擾并屏蔽靜電,可以用于敏感器件的保護(hù)。
4.其他
余下還有許多硬件屏蔽干擾的方法,如磁珠、多層板的使用,接插件、模擬電壓輸入線的安裝方式等,都可以有效降低電磁干擾,鑒于篇幅有限,這里就不一一贅述了。
四、結(jié)語
微控制器的抗干擾設(shè)計(jì)涉及的情況非常復(fù)雜,其設(shè)計(jì)的好壞、完善與否,均影響著整個(gè)系統(tǒng)的性能發(fā)揮。本文從軟件和硬件兩個(gè)角度進(jìn)行深入分析,為實(shí)際開發(fā)工作提供盡可能全面的依據(jù)。
參考文獻(xiàn)
[1]鄭高輝,高利輝.家用空調(diào)直流變頻控制器的抗干擾設(shè)計(jì)[J].家電科技,2013(12).
[2]尹明,張金鳳,劉吉軍.微控制器系統(tǒng)PCB的EMC問題和抗干擾設(shè)計(jì)[J].齊齊哈爾大學(xué)學(xué)報(bào),2002(02).
[3]吳增桂.淺析電動(dòng)機(jī)保護(hù)器系統(tǒng)抗干擾設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2010(17).
篇2
微控制器(Microcontroller)自上世紀(jì)70年代出現(xiàn)以來,在將近30年的時(shí)間里得到了迅猛的發(fā)展和廣泛的應(yīng)用。隨著微電子技術(shù)的飛速發(fā)展,微控制器以其性能好、體積小、價(jià)格優(yōu)、功能齊全等突出優(yōu)點(diǎn)被廣泛應(yīng)用于家用電器、計(jì)算和外設(shè)、通訊、工業(yè)控制、自動(dòng)化生產(chǎn)、智能化設(shè)備以及儀器儀表等領(lǐng)域,成為科研、教學(xué)、工業(yè)技術(shù)改造最得力的工具。從最初采用普林斯頓結(jié)構(gòu)的簡單微控制器到現(xiàn)在普遍采用哈佛總線結(jié)構(gòu)的RISC微控制器,微控制器取得了飛速的發(fā)展。
8位微控制器目前應(yīng)用數(shù)量最大的微控制器,也是目前最多公司致力耕耘的市場;其市場及價(jià)格競爭都極為激烈,各種多功能需求以及不同規(guī)格的產(chǎn)品推陳出新的速度也極為快速。隨著集成電路和半導(dǎo)體工藝技術(shù)的快速發(fā)展,F(xiàn)PGA和SOC技術(shù)的不斷競爭和融合,電子產(chǎn)品的設(shè)計(jì)逐漸向系統(tǒng)性能更好、功耗更小、成本更低、可靠性更高、開發(fā)更容易的方向發(fā)展。因此,迅速推出符合市場需求的高性價(jià)比、低功耗、高經(jīng)濟(jì)效益的8位微控制器芯片或IP Core成為了現(xiàn)今不少公司競爭相逐的熱點(diǎn)。
2.目前8位微控制器的更新和設(shè)計(jì)趨勢
對于不同的微控制器(MCU)產(chǎn)品應(yīng)用,不僅需要考慮不同廠家MCU的性價(jià)比,而且還需要考慮不同指令系統(tǒng)下MCU應(yīng)用特點(diǎn)。針對不斷涌現(xiàn)出來的新的智能化電子產(chǎn)品,們一直在開發(fā)適合于不同嵌入式系統(tǒng)應(yīng)用的MCU新產(chǎn)品[2].不同廠家的MCU產(chǎn)品其指令集各不相同,特別是指令集系統(tǒng)架構(gòu)的不同,如市場上廣泛應(yīng)用的MCS51系列和PIC系列微控制器則分別采用CISC指令系統(tǒng)和RISC指令系統(tǒng)。
微控制器按照指令系統(tǒng)可以分為CISC、RISC、類RISC(RISC-LIKE)等幾種。傳統(tǒng)的MCS51控制器屬于CISC型,其代碼密度高,但大多數(shù)指令需要多個(gè)時(shí)鐘周期完成。RISC型一般指令密度較低,但指令效率很高。類RISC型則兼有CISC和RISC的優(yōu)點(diǎn)。RISC和類RISC之所以有如此高的指令效率,得益于小指令集帶來的硬布線結(jié)構(gòu)和流水線結(jié)構(gòu)。簡單的指令集可以用硬布線進(jìn)行指令譯碼,而不需要用微碼控制的方式,提高了譯碼的效率。流水線結(jié)構(gòu)將指令分成幾步完成,在流水線填滿工作時(shí),每條指令的平均執(zhí)行時(shí)間(CPI)在1個(gè)時(shí)鐘周期左右[3].一般來說,RISC比同等的CISC要快50%——70%,同時(shí)更容易設(shè)計(jì)和糾錯(cuò)。
因此,目前對8位微控制器的產(chǎn)品開發(fā)和研究設(shè)計(jì)主要是以兼容市場上已被客戶廣泛采用的產(chǎn)品為前提,不斷提高性能并降低功耗以適應(yīng)市場競爭和技術(shù)發(fā)展。對于原先為CISC指令系統(tǒng)的微控制器產(chǎn)品,在層出不窮的更新系列中已經(jīng)漸漸的融合進(jìn)了RISC思想;對于采用RISC指令系統(tǒng)的微控制器來說,更多的做法仍然是針對高性能低功耗的需求對其整個(gè)體系架構(gòu)不斷地進(jìn)行優(yōu)化和改善,尤其是流水線結(jié)構(gòu)的改進(jìn)最為多見。本文正是在種形勢下提出的,主要討論RISC體系架構(gòu)的8位微控制器產(chǎn)品的設(shè)計(jì)技術(shù)。
3.RISC微處理器的結(jié)構(gòu)特征和設(shè)計(jì)原則
雖然現(xiàn)在業(yè)界對RISC 處理器應(yīng)該具有什么特征還有不同的看法,但是各種RISC結(jié)構(gòu)都有一些共性:(1)采用哈佛總線結(jié)構(gòu),大多數(shù)指令在一個(gè)時(shí)鐘周期內(nèi)完成以便于實(shí)現(xiàn)結(jié)構(gòu)流水化;(2)采用獨(dú)立且簡單的裝載/存儲(chǔ)結(jié)構(gòu);(3)指令解碼通常都是硬連線實(shí)現(xiàn)而不是微解碼,以便加快執(zhí)行速度;(4)多數(shù)指令具有固定格式,以簡化指令編碼和譯碼;(5)較小的指令集和少數(shù)幾種尋址模式;(6)數(shù)據(jù)通道流水線化,使處理過程高度并行;(7)采用大容量高速寄存器堆(或稱為寄存器文件),盡量避免與速度較低的系統(tǒng)RAM交換數(shù)據(jù)。盡量將運(yùn)算數(shù)據(jù)存放在寄存器中,從而減少訪問內(nèi)存的次數(shù)。根據(jù)以上的討論,下文重點(diǎn)從體系架構(gòu)的角度出發(fā),就高性能、低功耗兩方面對8位RISC微控制器在設(shè)計(jì)中的關(guān)鍵技術(shù)進(jìn)行了探討研究。
4.關(guān)鍵技術(shù)
4.1 RISC指令集的選取
控制器系統(tǒng)的使用跟軟件編程與硬件設(shè)計(jì)之間的規(guī)格接口密切相關(guān),這個(gè)接口就是微控制器的指令集。指令體系結(jié)構(gòu)(ISA)是進(jìn)行微處理器軟硬件協(xié)同設(shè)計(jì)的前提。指令集必須完備,使所有可計(jì)算的功能都在合理的程序空間內(nèi)得以實(shí)現(xiàn);而且指令集又必須是高效的,以便使常用的功能可以用相對少的指令實(shí)現(xiàn)。因此,提供給應(yīng)用軟件開發(fā)的微控制器系統(tǒng)必須有一個(gè)完備而高效的指令集。
指令集直接決定微控制器的內(nèi)部硬件結(jié)構(gòu),同時(shí)也是用戶程序編譯生成目標(biāo)代碼的依據(jù)。指令集的最終確定與整個(gè)系統(tǒng)所需的程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器變量及存儲(chǔ)器尋址方式密切相關(guān)且相互制約。各個(gè)部件乃至具體的字節(jié)都應(yīng)該有唯一的地址,以便指令集能夠正確對各個(gè)部件或字節(jié)進(jìn)行辨認(rèn)操作。因此也就有了相應(yīng)的一系列針對不同產(chǎn)品的不同措施: 1)從所需要的地址度和相應(yīng)增加的寄存器來權(quán)衡指令的長度;2)對指令進(jìn)行分類并分別確定各類的指令字節(jié)格式,以簡化操作控制信號(hào)的譯碼邏輯;3)增加相應(yīng)的寄存器以彌補(bǔ)指令字節(jié)長度的不足;4)指令字節(jié)格式分配應(yīng)考慮到相應(yīng)部件的結(jié)構(gòu)復(fù)雜度及對應(yīng)的尋址方式;5)存儲(chǔ)器、寄存器、I/O口是否統(tǒng)一尋址。以上所列舉的并不詳盡也無先后順序之分,應(yīng)該同時(shí)進(jìn)行分析。相應(yīng)的措施所對應(yīng)的性能、功耗、設(shè)計(jì)復(fù)雜度各不一樣,應(yīng)統(tǒng)一考慮。
對ISA進(jìn)行功耗分析應(yīng)該從指令代碼容量和指令執(zhí)行效率兩方面考慮。指令集大小、寄存器變量、存儲(chǔ)器尋址方式、流水線結(jié)構(gòu)等技術(shù)的選定都和指令代碼密度有緊密聯(lián)系。研究發(fā)現(xiàn),在RISC的精簡指令集中適當(dāng)增加一些特定的復(fù)雜指令不失為提高代碼密度、保證處理器高性能、低功耗的可行方法。因此能夠產(chǎn)生高指令代碼密度的指令集無疑是RISC低功耗設(shè)計(jì)的首選。
4.2 具有共享區(qū)的寄存器堆的分頁設(shè)計(jì)
RISC設(shè)計(jì)思想的最主要特點(diǎn)是所有的操作都是面向寄存器的。利用寄存器——寄存器操作的指令進(jìn)行數(shù)據(jù)傳送,加快了速度,而且還簡化了指令控制邏輯,縮小了硬布線邏輯構(gòu)成的控制部件的芯片面積。
在指令中固定寄存器地址的位數(shù)必然限制寄存器的數(shù)量,但是引入高端處理器的分段、分頁的設(shè)計(jì)思想就可以擴(kuò)展尋址的范圍。分段、分頁的設(shè)計(jì)思想的根本出發(fā)點(diǎn)在于將存儲(chǔ)器的線性地址分解成二維或多維地址;在指令中只表達(dá)最低維地址,而使用其它設(shè)施(如段號(hào)寄存器、頁號(hào)寄存器)用來存放高維地址。一般將寄存器堆分成若干個(gè)頁,每個(gè)頁有固定的大小,在指令中只使用寄存器的頁內(nèi)地址。在系統(tǒng)專用寄存器中設(shè)置一個(gè)頁號(hào)寄存器,通過改變其內(nèi)容來切換對不同頁寄存器的訪問。
為克服單純分頁機(jī)制中的各種缺陷,通常采用具有共享區(qū)的分頁設(shè)計(jì),這樣不僅減少了指令中寄存器邏輯地址的位數(shù),而且在任何時(shí)候都能夠訪問系統(tǒng)寄存器,同時(shí)便于不同頁寄存器之間通過共享區(qū)中的通用寄存器交換信息。當(dāng)然還得有相應(yīng)的邏輯地址到物理地址的映射的方法措施。
4.3 程序空間的分頁設(shè)計(jì)
由于和寄存器堆同樣的原因,在指令中若采用完整的程序空間地址,也會(huì)局限程序空間的大小,所以對程序空間通常也采用了分頁的設(shè)計(jì)思想,同時(shí)在不同頁內(nèi)設(shè)置了公共程序區(qū)(若指令長度完全符合程序空間地址的要求,則無需此思想),其設(shè)計(jì)思想類同于具有共享區(qū)的寄存器分頁設(shè)計(jì),在此不再贅述。唯一與寄存器公共區(qū)不同的是:程序公共區(qū)是為程序在不同頁之間跳轉(zhuǎn)提供平臺(tái)。
4.4 流水線技術(shù)
流水線設(shè)計(jì)與8位RISC微控制器體系架構(gòu)密不可分,是整個(gè)系統(tǒng)的設(shè)計(jì)核心,它的選用優(yōu)劣直接影響到系統(tǒng)的性能和功耗。
流水線技術(shù)能最大限度地利用了微控制器資源,使每個(gè)部件在每個(gè)時(shí)鐘周期都工作,大大提高了效率,但由于流水線的各個(gè)段之間存在很強(qiáng)的依賴關(guān)系。如果處理不當(dāng), 指令的運(yùn)行將達(dá)不到預(yù)期的結(jié)果,因此必須熟知流水線的相關(guān)和轉(zhuǎn)移問題。其一為資源沖突, 即同一時(shí)間內(nèi)爭用同一功能部件, 一般為同時(shí)訪問存儲(chǔ)器, 這就需要停頓一拍流水線; 其二為數(shù)據(jù)相關(guān)沖突, 有三種類型: RAW、WAR、WAW , 解決該沖突使用內(nèi)部直通結(jié)構(gòu)或者延遲一拍流水線; 其三為控制轉(zhuǎn)移沖突, 即對于條件跳轉(zhuǎn)指令, 根據(jù)運(yùn)算結(jié)果判斷是否跳轉(zhuǎn), 才能確定新的PC值, 運(yùn)算結(jié)果是在執(zhí)行階段后獲得, 這使流水線喪失很多的性能, 一般采用增加硬件預(yù)先獲得運(yùn)算結(jié)果解決該沖突。
越是長的流水線,相關(guān)和轉(zhuǎn)移兩大問題也越嚴(yán)重:一方面導(dǎo)致硬件控制電路復(fù)雜程度大大增加, 另一方面, 由于流水線節(jié)拍的停頓, 導(dǎo)致CPI值的增大及系統(tǒng)性能的下降。所以,流水線并不是越長越好,找到一個(gè)速度與效率的平衡點(diǎn)才是最重要的。
在8位RISC微控制器的流水線設(shè)計(jì)中,存在很多種方案。不同方案所對應(yīng)的面積、速度與功耗各不相同。具體的選用則應(yīng)該從多個(gè)方面融合考慮。首先應(yīng)該由系統(tǒng)的工作速率要求和流水線級數(shù)、深度推導(dǎo)出多種具體的流水線結(jié)構(gòu)方案及其所需要的嚴(yán)格時(shí)序;然后從系統(tǒng)的功耗、面積、性能及由流水線相關(guān)和轉(zhuǎn)移問題引起的設(shè)計(jì)復(fù)雜度等方面考慮出發(fā),判斷各方案的優(yōu)劣;最后折衷選擇符合的最優(yōu)方案。
4.5 低功耗技術(shù)
隨著半導(dǎo)體工業(yè)的迅猛發(fā)展,集成電路進(jìn)入深亞微米階段,微處理器的時(shí)鐘頻率和芯片集成度不斷提高,功耗已在很多設(shè)計(jì)領(lǐng)域成為了首要關(guān)注的問題,這點(diǎn)最為突出的即是高性能微處理器和便攜電子設(shè)備產(chǎn)品。
在根據(jù)系統(tǒng)功能說明進(jìn)行軟硬件協(xié)同設(shè)計(jì)、確定指令體系結(jié)構(gòu)時(shí),不同的設(shè)計(jì)出發(fā)點(diǎn)所導(dǎo)致的設(shè)計(jì)功耗結(jié)果差別會(huì)很大。因此整個(gè)體系架構(gòu)的確定無疑是低功耗問題應(yīng)該考慮的首要問題,主要體現(xiàn)以下幾個(gè)方面:1)盡可能根據(jù)功能需求優(yōu)化指令集,簡化系統(tǒng)的譯碼單元和執(zhí)行單元;2)通過開發(fā)硬件的并行性以及功能單元的流水執(zhí)行來實(shí)現(xiàn)低功耗的結(jié)構(gòu);3)合理設(shè)置確定存儲(chǔ)器、寄存器的容量,減少所需的總線數(shù)目;4)系統(tǒng)硬件的各個(gè)子模塊劃分以及軟件上設(shè)置不同的工作狀態(tài)對功耗的優(yōu)化非常重要。
篇3
便攜式產(chǎn)品的功能和性能日新月異。消費(fèi)者對產(chǎn)品性能的要求也越來越高,需要更強(qiáng)大的運(yùn)算能力支持;另一方面,希望產(chǎn)品具有更低的功耗。
盡管已經(jīng)出現(xiàn)了很多功耗處理器,但它們的性能通常很有限。Dallas公司的系列高速微控制器在性能和功耗之間取得了一個(gè)很好的折衷,采用了8051架構(gòu)——世界上最流行的微控制器之一。簡單易用、豐富的I/O資源使這種微控制器深受設(shè)計(jì)者的喜愛,并被廣泛接受。它的流行勢頭已蔓延到了便攜式領(lǐng)域,在很多應(yīng)用中都有其用武之地。
本文旨在探討使用8051控制器時(shí),如何降低功率的消耗,重點(diǎn)介紹一種改進(jìn)架構(gòu)的高性能8051設(shè)計(jì)。
1 時(shí)鐘頻率
任何微控制器設(shè)計(jì)中,決定功耗的一個(gè)首要因素就是系統(tǒng)的時(shí)鐘頻率。互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)工藝的器件功耗直接正比于時(shí)鐘頻率。因此,從省電的角度考慮,將處理器運(yùn)行于盡可能低的頻率比較有利。
圖1表示一個(gè)普通的8051微控制器的典型功率曲線,一個(gè)被所有便攜系統(tǒng)設(shè)計(jì)得所熟知的關(guān)系。一般來講,電流隨頻率的變化曲線為線性,具有一定的DC偏移。這個(gè)靜態(tài)電流由片由的靜態(tài)電路所消耗,例如比較器、運(yùn)算放大器等。其數(shù)值一般很小(<1mA),是一個(gè)不可忽略的固定吸收電流。
任何功率受限的設(shè)計(jì)都應(yīng)該考慮采用盡可能慢的運(yùn)行速度。決定最低系統(tǒng)頻率,也就是最低功耗的,有很多因素,包括期望得到的系統(tǒng)性能、中斷響應(yīng)延盡等。不管采用什么標(biāo)準(zhǔn),最終目標(biāo)是相同的:使器件的工作頻率盡可能地靠近應(yīng)用的需求。
2 高速內(nèi)核
要降低基于8051系統(tǒng)的功率消耗,最直接的辦法就是改善微控制器的效率。8051最初的設(shè)計(jì)采用了一個(gè)12時(shí)鐘周期、每機(jī)器周期兩次取指的架構(gòu)。然而,高速微控制器采用的是每機(jī)器周期4個(gè)、甚至1個(gè)時(shí)鐘的內(nèi)核。它們具有更高的運(yùn)算效率,執(zhí)行一個(gè)指令需要很少的時(shí)鐘周期,具有更快的運(yùn)行速度和更高的時(shí)鐘頻率。
盡管高速核的優(yōu)勢通常考慮其處理能力,它們在降低功耗方面有很重要的意義。當(dāng)處理器的運(yùn)行指令經(jīng)過優(yōu)化后,執(zhí)行同一任務(wù)所需的時(shí)間很短。很多便攜式產(chǎn)品工作在猝發(fā)模式,其特點(diǎn)是只很短的活動(dòng)時(shí)間,例如記錄環(huán)境數(shù)據(jù)或掃描一個(gè)條碼,而在隨后的很長時(shí)間內(nèi)都處于非活動(dòng)狀態(tài)。減少處理器的活動(dòng)時(shí)間可以相應(yīng)地降低功耗。
效率提升帶來的另一個(gè)好處是,獲得相同的性能所需的時(shí)鐘頻率可以更低。如果一個(gè)經(jīng)過重新設(shè)計(jì)的內(nèi)核采用4時(shí)鐘機(jī)器周期而非12時(shí)鐘,這就意味著完成同樣的工作,只需更低的晶振頻率。由于功率正比于晶振頻率,這樣,不必犧牲性能即可降低功耗。
圖2顯示三種微控制器以同樣的速度完成同一任務(wù)時(shí)的功耗情況。其中兩種是標(biāo)準(zhǔn)80C3X的衍生產(chǎn)品:一種是工作于每機(jī)器周期12個(gè)外部時(shí)鐘方式;另外一種是DS80C320微控制器,工作于4時(shí)鐘機(jī)器周期。測出各個(gè)器件的消耗電流,然后進(jìn)行對比,保守地估計(jì)DS80C320具有250%(2.5倍)的速度提升。正如圖2所顯示的,每周期時(shí)鐘數(shù)減少后的處理器內(nèi)核工作于同樣的吞吐率時(shí),消耗的電流顯著降低,高速運(yùn)行時(shí)尤其顯著。
3 集成化
將外圍功能集成于芯片內(nèi)部是節(jié)省電能的方法之一。在向芯片外部驅(qū)動(dòng)一個(gè)信號(hào)時(shí),每周期時(shí)鐘數(shù)減少后的處理器內(nèi)核工作于同樣的吞吐率時(shí),以便驅(qū)動(dòng)外部負(fù)載和補(bǔ)償DC損耗。開關(guān)功率是數(shù)字信號(hào)過渡過程中消耗的功能。開關(guān)功率可根據(jù)下面的公式估算:
PSW∝CV2/T (1)
其中C是接收門輸入電容和連線電容的總和,T是時(shí)鐘信號(hào)周期。一個(gè)CMOS門的典型輸入電容為10pF。盡管很難精確計(jì)算出系統(tǒng)的開關(guān)功率,但有一點(diǎn)是顯然的,每個(gè)額外的外部負(fù)載或引腳都會(huì)給微控制器造成額外的功耗。
基于微控制器的系統(tǒng)通常都會(huì)有一定數(shù)量的外圍器件,例如從餐部的UART和上電昨位電路到看門狗定時(shí)器。8051系列的優(yōu)勢之一便是將大量的外圍功能集成于片內(nèi)。除了減少元件數(shù)量、簡化設(shè)計(jì)外,外圍功能的集成化也有利于降低功耗。可以認(rèn)為任何外圍器件的核心功能消耗的功率是相同的,與它位于處理器的內(nèi)部還是外部沒有關(guān)系。然而,將功能放在片內(nèi)無疑節(jié)省了驅(qū)動(dòng)外部總線所需的開關(guān)功率。
3.1 內(nèi)部程序存儲(chǔ)器
8051另外一個(gè)通常不被視作外設(shè)功能單元是程序存儲(chǔ)器。所有8051的衍生產(chǎn)品都包含了不同容量的片內(nèi)程序存儲(chǔ)器。這是許多系統(tǒng)設(shè)計(jì)所期望的,以便減少外圍元件數(shù)量和印制板面積,同時(shí)改善了便攜系統(tǒng)的電源壽命。正如前面提到的,集成的程序存儲(chǔ)器由于免去了外部總線驅(qū)動(dòng),因而降低了功耗。采用片內(nèi)存儲(chǔ)器還有另外一個(gè)省電的原因。8051架構(gòu)必須采用一個(gè)74373類型的鎖存器,以便鎖存低字節(jié)地址。圖3顯示采用內(nèi)部和外部程序存儲(chǔ)器時(shí)的功耗情況對比。前者采用DS87C520高速微控制器和一個(gè)74AC573鎖存器,以及一片27C256EPROM,訪問時(shí)間70ns。第二個(gè)系統(tǒng)采用同樣的微控制器,工作于內(nèi)部存儲(chǔ)器。兩個(gè)系統(tǒng)均工作在11.0592MHz,執(zhí)行一個(gè)簡單、普通的程序。從圖3可以明顯看到,高頻運(yùn)行的系統(tǒng)中省掉外部EPROM和鎖存器后,可節(jié)省多達(dá)49mA的電流。
3.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器
如前所述,采用片內(nèi)存儲(chǔ)器取代外部RAM能夠節(jié)省電能。80C32衍生產(chǎn)品具有擴(kuò)充了的臨時(shí)存儲(chǔ)器(256字節(jié)),足夠小的程序的堆棧操作和數(shù)據(jù)存儲(chǔ),不必外接RAM。
對于需要更多數(shù)據(jù)存儲(chǔ)器或設(shè)置外部堆棧的設(shè)計(jì),還需要額外的SRAM。雖然可以找到低功耗的SRAM,在考慮它所帶來的功耗時(shí),還應(yīng)將相關(guān)的74373系列鎖存器、驅(qū)動(dòng)外部總線的容性損耗等一并考慮在內(nèi)。
4 時(shí)鐘源
影響功耗的另一個(gè)重要的系統(tǒng)元素是時(shí)鐘源。標(biāo)準(zhǔn)8051設(shè)計(jì)通常采用內(nèi)部振蕩器激勵(lì)一個(gè)外部石英晶體產(chǎn)生時(shí)鐘,或者采用外部晶體振蕩器。如果采用外部晶體振蕩器,時(shí)鐘的波形會(huì)影響到功耗。如果采用外部晶體振蕩器,時(shí)鐘的波形會(huì)影響到功耗。XTAL1引肚子內(nèi)的輸入級用來將外部時(shí)鐘信號(hào)輸入8051內(nèi)核,通常采用互補(bǔ)式驅(qū)動(dòng)器。隨著輸入時(shí)鐘在高、低電平之間的跳動(dòng),驅(qū)動(dòng)器中的互補(bǔ)對管會(huì)有一個(gè)短時(shí)間的同時(shí)開通過程,造成顯著的電流浪涌。對于矩 形波來說,高、低狀態(tài)之間的過渡過程非常短暫,兩管同時(shí)開通的時(shí)間最短。對于上升和下降時(shí)間比較長的波形,例如正弦或三角波,過渡過程比較長,驅(qū)動(dòng)器兩管同時(shí)開通的時(shí)間也更長。這將會(huì)增加電流和功耗。
圖4表示電流消耗和波形的關(guān)系。時(shí)鐘源是一個(gè)可編程波形發(fā)生器,可以產(chǎn)生正弦波、三角波或方波。圖4顯示的電流是4個(gè)器件的平均值,包括傳統(tǒng)的和改進(jìn)的高速處理核。比較發(fā)現(xiàn)電流消耗直接正比于時(shí)鐘波形的上升(和下降)時(shí)間。三角波具有最小的斜率,而矩形波斜率最大。采用矩形波時(shí)的電流平均要比三角波低0.75mA。這預(yù)示著在用外部時(shí)鐘振蕩器時(shí),采用上升和下降時(shí)間更快的振蕩器將有利于降低電流功耗。這一點(diǎn)在較低頻率下尤為重要,此時(shí)器件需要花費(fèi)更多的時(shí)間用于過渡過程。
有些8051衍生產(chǎn)品包含了一個(gè)片內(nèi)的環(huán)形振蕩器。通常是一串反相器,脈沖在其中傳播。它可以提供一個(gè)2~4MHz的內(nèi)部時(shí)鐘源,驅(qū)動(dòng)器件。由于不需要使用晶體,這種振蕩器是功耗很低的時(shí)鐘源。從DS87C520高速微控制器的特性可以看出,工作于環(huán)形振蕩器時(shí),能夠提供等同于7MHz8051的性能,而功耗僅有3.6mA。雖然環(huán)形振蕩器沒有壓電式晶體那樣穩(wěn)定,它們的低拉耗以及可以忽略的上電延遲在功率管理方面占有顯要位置。
5 時(shí)鐘管理
微控制器的工作頻率是影響器件功耗最重要的一個(gè)因素。雖然系統(tǒng)的時(shí)鐘頻率主要取決于硬件配置,8051還是提供了一些有限的控制手段。這些手段減緩或終止器件全部或部分單元的工作時(shí)鐘。傳統(tǒng)的8051架構(gòu)采用了兩種控制方法:空閑和停機(jī)。
5.1 改善停機(jī)模式
停機(jī)模式是8051設(shè)計(jì)得所能利用的最低功耗狀態(tài)。在該模式下,內(nèi)部振蕩器停振,器件中止工作。脫離停機(jī)模式通常靠外部復(fù)位。某些變種也可以通過外部中斷退出停機(jī)模式。
停機(jī)模式有一個(gè)缺點(diǎn),就是在晶振恢復(fù)工作的一個(gè)死時(shí)間內(nèi)的功耗問題。晶體振蕩器的工作依賴于石英晶體的振動(dòng)。物理層限性決定了晶體振蕩器必須有一個(gè)確定的時(shí)間,才能達(dá)到足夠的振蕩器幅度來驅(qū)動(dòng)器件工作。這個(gè)預(yù)熱過程不管采用內(nèi)部振蕩器還是外部振蕩器都會(huì)存在。時(shí)間大約在3~12ms,與晶體和振蕩器的性能有關(guān)。
預(yù)熱過程對于功耗的作用在于,在此階段器件不執(zhí)行任何有用的工作,但仍要消耗功率。如果器件頻繁地進(jìn)入和退出停機(jī)模式,或者退出停機(jī)模式后只執(zhí)行很短時(shí)間的任務(wù),這種效應(yīng)會(huì)變得格外顯著。事實(shí)上,如果任務(wù)非常短(<5ms),晶振啟動(dòng)期間消耗的能量甚至?xí)^執(zhí)行任務(wù)本身的消耗。如果采用環(huán)形振蕩器來實(shí)現(xiàn)從停機(jī)模式到快速啟動(dòng),就可避免這種延遲。這將大幅降低退出停機(jī)模式時(shí)的功率消耗。
圖5表示兩個(gè)系統(tǒng)退出停機(jī)模式并執(zhí)行一個(gè)短任務(wù)時(shí)的工作情況。其中一個(gè)器件包含一個(gè)內(nèi)置的環(huán)形振蕩器,另一個(gè)使用傳統(tǒng)的外部晶振。沒有環(huán)形振蕩器的器件必須經(jīng)歷一個(gè)晶振預(yù)熱期。在此期間器件不斷地消耗功率,卻沒有做任何有用的工作。第二個(gè)器件是一片DS87C520高速微控制器,片內(nèi)包含一個(gè)環(huán)形振蕩器。這就允許器件在退出停機(jī)模式時(shí)能立即恢復(fù)工作。在本例中,程序執(zhí)行4ms以內(nèi),間隔大約為2MHz。正如圖5所看到的,當(dāng)需要退出停機(jī)模式執(zhí)行短任務(wù)時(shí),采用環(huán)形振蕩器可以大幅減少能量消耗。
某些應(yīng)用中,在退出停機(jī)模式后不久,要求時(shí)鐘具有晶振的穩(wěn)定度。這種情況下,環(huán)形振蕩器仍不失其優(yōu)越性。緊隨著停機(jī)模式的退出,控制器應(yīng)該立即啟動(dòng)是晶體振蕩器。隨后可以在晶振的預(yù)熱期控制器初始化一些必要的數(shù)據(jù)或寄存器。多數(shù)高速微控制器可以用一個(gè)狀態(tài)位來標(biāo)示晶體振蕩器是否達(dá)到穩(wěn)定。一旦完成了晶振代碼的初始化進(jìn)程,軟件可以查詢狀態(tài)位,以決定是否著手高精度定時(shí)操作。
另外一個(gè)改善停機(jī)模式效率的方法是采用中斷而不是復(fù)位方式來喚醒控制器。這種方式使處理器能夠緊接著設(shè)置STOP位的指令立即恢復(fù)工作,而不是從復(fù)位向量重新啟動(dòng)。這樣就免去了對復(fù)位原因的判斷,允許處理器在最短的時(shí)間內(nèi)開始有用的工作。
5.2 空閑模式
空閑模式是早期8051架構(gòu)使用的第二個(gè)時(shí)鐘管理模式。該模式中止了CPU的運(yùn)行,但片內(nèi)的通用定時(shí)器保持工作。在功率敏感的應(yīng)用中,這個(gè)定時(shí)器被用于周期性地喚醒處理器去執(zhí)行任務(wù),或者去判斷是否該執(zhí)行某個(gè)任務(wù)。
由于標(biāo)準(zhǔn)的8051定時(shí)器為16位,采用16MHz的時(shí)鐘頻率時(shí),最大定時(shí)周期只有31ms。如果需要更長的周期,就需要定時(shí)器多次溢出。這會(huì)消耗額外的功率,因?yàn)樘幚砥鞅匦桀l繁地恢復(fù)全速工作來累積計(jì)數(shù),但沒有執(zhí)行任何有用的工作。
對于比較長的周期,最好采用比較長定時(shí)周期的內(nèi)部定時(shí)器。有些8051衍生產(chǎn)品包含了一個(gè)看門狗定時(shí)器,也可被用來喚醒處理器。看門狗定時(shí)器可被編程為比較長的定時(shí),可達(dá)256個(gè)時(shí)鐘周期。在16MHz的頻率下能夠提供4.2s的最長延時(shí)。假設(shè)某應(yīng)用希望每幅3s從低功耗狀態(tài)喚醒,去執(zhí)行任務(wù)。如果采用內(nèi)部定時(shí)器去定時(shí),處理器將不得不退出空閑模式96閃而不作有用的工作。如果采用長定時(shí)周期的看門狗定時(shí)器,則處理器只需要在執(zhí)行任務(wù)的時(shí)候退出空閑狀態(tài),完成任務(wù)后再次到低功耗狀態(tài)。
還有一個(gè)選擇就是采用帶有實(shí)時(shí)時(shí)鐘(RTC)的微處理器。DS87C530高速微處理器內(nèi)置的RC能夠產(chǎn)生周期長達(dá)24小時(shí)的鬧鐘信號(hào)。由該鬧鐘產(chǎn)生的內(nèi)部中斷可將處理器從空閑或停機(jī)模式中喚醒。利用RTC退出停機(jī)模式對于需要長時(shí)間掛起的系統(tǒng)來講是最為有效的方式。
6 功率管理模式
盡管空閑模式通過掛起運(yùn)行程序而使功耗得以降低,內(nèi)部定時(shí)器仍在以外部時(shí)鐘的頻率連續(xù)運(yùn)行。這會(huì)消耗掉數(shù)量可觀的功率。試想一下,是否可以讓定時(shí)器工作于基本上接近待機(jī)的狀態(tài)。
一個(gè)比較好的辦法是降低整個(gè)器件的時(shí)鐘頻率。這可以由一個(gè)內(nèi)部的時(shí)鐘分頻器來實(shí)現(xiàn),它將外部時(shí)鐘頻率分頻后再送入CPU。這種方案已在DS87C520高速微控制器中實(shí)現(xiàn)。該器件使用了兩種時(shí)鐘分頻系數(shù):功率管理模式1,輸入時(shí)鐘源被64分頻;功率管理模式2,輸入時(shí)鐘源被除以1024分頻。這些模式或以通過設(shè)置特殊功能寄存器中的對應(yīng)位來實(shí)現(xiàn)。
圖6對DS87C520高速微控制器的時(shí)鐘分頻器和時(shí)鐘控制模式加以對比。圖6中,全速模式(除以4)、功率管理模式1(除以64)、功率管理模式2(除以1024)、空閑模式及停機(jī)模式下的電流消耗形成鮮明對比。正如所料,停機(jī)模式吸收最低的電流,因?yàn)樗鶅?nèi)部時(shí)鐘都被關(guān)掉了。兩種功率管理模式消耗的電流比空閑模式還低。這不僅降低了器件的功耗,還說明可以讓它以較低的水平持續(xù)運(yùn)行。在傳統(tǒng)的8051結(jié)構(gòu)中,任何類型的CPU運(yùn)行只有兩個(gè)狀態(tài):“全部或者沒有”。處理器被迫頻繁地運(yùn)行于最高性能水平,盡管只在很短的時(shí)間內(nèi)得到高性能,這會(huì)增加一些不必要的功率浪費(fèi)。功率管理模式(PMM)的使用,使處理器(如系統(tǒng))能夠根據(jù)實(shí)際性能需求對其功耗進(jìn)行最優(yōu)化管理。
6.1 中斷和PMM的使用
采用內(nèi)部時(shí)鐘分頻器可能會(huì)帶來的問題是,中斷延遲會(huì)大大增加;另外,內(nèi)部定時(shí)器的減慢會(huì)影響8051串口產(chǎn)生或同步標(biāo)準(zhǔn)波特率的能力。這會(huì)嚴(yán)重干擾處理器響應(yīng)外部激勵(lì)的能力。解決方案之一就是在外部中斷或串行動(dòng)被確認(rèn)后,自動(dòng)使處理器恢復(fù)到完全運(yùn)行狀態(tài)。這種方案已經(jīng)在DS87C520中得以實(shí)現(xiàn)。處理器的這種回切功能使其能夠迅速響應(yīng)外部中斷。緊隨著中斷回答,器件將自動(dòng)切回到全速(除以4)狀態(tài),并且不需要軟件參與。
串行口的工作方式十分相似。當(dāng)在串行口接收腳上檢測到下降沿(起始位)后,器件將自動(dòng)切回到全速運(yùn)行(除以4)。這個(gè)過程緊接著數(shù)據(jù)傳送起始,因而器件能夠以全速來正確地接收余下的傳送數(shù)據(jù)。對于傳統(tǒng)的8051結(jié)構(gòu),在低功耗配置中使用串口的唯一辦法是利用閑置模式。功率管理模式的使用提供了一種更低功耗的替代方案。
6.2 改進(jìn)突發(fā)工作模式
在低功耗設(shè)計(jì)中,覺見的工作模式是將處理器從停機(jī)模式中喚醒,執(zhí)行一個(gè)突發(fā)任務(wù),然后再加到停機(jī)模式。在這樣的系統(tǒng)中,降低功耗的一個(gè)手段是提高工作頻率。初看起來,似乎匪夷所思。因?yàn)樵谡9ぷ髌陂g,高頻率系統(tǒng)要比低頻率系統(tǒng)消耗更多的功率。然而,系統(tǒng)工作時(shí)消耗的靜態(tài)電流與頻率無關(guān)。在一個(gè)最終設(shè)計(jì)中,通常評估的是其能耗,以便確定電池工作壽命。這一點(diǎn)在評估一個(gè)高性能微控制器時(shí)尤為關(guān)鍵,因?yàn)樗C合地考慮了處理時(shí)間和處理功率。對于一個(gè)給定系統(tǒng),如果它具有更小功率與時(shí)間乘積,那么它的能耗更低;而不必單獨(dú)考慮兩種參數(shù)。很多實(shí)例顯示,高速微控制器由于運(yùn)行時(shí)間更短,實(shí)際能耗更低;而處理時(shí)間更長的低速處理器正好與此相反。
這一點(diǎn)可以通過圖6提到驗(yàn)證。假定從停機(jī)模式恢復(fù)后,DS87C520讀取一個(gè)I/O端口,經(jīng)過算術(shù)運(yùn)行后將結(jié)果從另一端口送出,這個(gè)過程需要500個(gè)機(jī)器周期的CPU時(shí)間。按圖6所示,電流消耗在10MHz時(shí)為12.4mA,30MHz時(shí)為34.6mA。表1歸納了在兩種速度下執(zhí)行讀任務(wù)時(shí)的能耗情況。從表1中可以看到,30MHz工作時(shí)的效率更高,能耗降低6%以上。
表1 執(zhí)行一個(gè)500機(jī)器周期的任務(wù)時(shí)所消耗的能量和處理器速度對比
時(shí)鐘頻率機(jī)器周期所用機(jī)器周期總時(shí)間Icc電流時(shí)間積10MHz400ns500200ms12.41mA2.48mAs30MHz133ns3006.5ms34.66mA2.30mAs6.3 跑跑停停
在很多應(yīng)用中,停機(jī)模式以外的時(shí)間并不完全取決于運(yùn)行速度。很多情況下,處理器需要訪問一個(gè)具有固定響應(yīng)時(shí)間的外圍設(shè)備,例如A/D轉(zhuǎn)換器或溫控器。此種情況下,處理器將有個(gè)突發(fā)動(dòng)作。一般是觸發(fā)某個(gè)過程,隨后的一段時(shí)間內(nèi),則只有很少的或根本沒任何操作。在這種時(shí)候,一種組合的功率節(jié)省技術(shù)會(huì)更為有效。
可以用一個(gè)實(shí)例來說明在這樣一個(gè)系統(tǒng)中,采用具PWM的高速微處理器所帶來的好處。設(shè)想的DS87C520與一片DS1620數(shù)字溫度計(jì)/溫控器相接口。這個(gè)器件可使用標(biāo)準(zhǔn)8051串口的工作模式0串行訪問。主機(jī)處理器在某個(gè)時(shí)刻通過外部中斷將DS87C520從停機(jī)模式喚醒,并要求它從DS1620中讀取溫度數(shù)據(jù)。獲得數(shù)據(jù)后,DS87C520會(huì)將其保存于內(nèi)部存儲(chǔ)器中,備隨后傳送。DS1620的工作類似于很多A/D轉(zhuǎn)換器:發(fā)出一個(gè)命令后啟動(dòng)一次轉(zhuǎn)換,然后,經(jīng)過一定延遲后轉(zhuǎn)換完成,接著,數(shù)據(jù)就可以被移走了。對于DS1620來講,轉(zhuǎn)換時(shí)間接近于1秒鐘。通過查詢器件來確定轉(zhuǎn)換是否完成。DS87C520非常適合于此種任務(wù),因?yàn)樗梢苑浅Q杆俚貓?zhí)行啟動(dòng)和運(yùn)算功能。隨后,在等待轉(zhuǎn)換完成期間,微控制器可以將其置于PMM。在傳統(tǒng)8051中,轉(zhuǎn)換被啟動(dòng)后,可利用閑置模式將傳統(tǒng)8051置于低功耗狀態(tài)。在這種模式中,可利用內(nèi)部的16位定時(shí)器來測量轉(zhuǎn)換時(shí)間。工作于16MHz時(shí),傳統(tǒng)8051需要在轉(zhuǎn)換完成之前退出閑置模式多達(dá)32次。
本例可被進(jìn)一步改進(jìn)。因?yàn)镈S1620是作為一個(gè)同步器件進(jìn)行訪問的,不要求高精度的定時(shí)操作。這樣,微控制器在啟動(dòng)轉(zhuǎn)換和讀取轉(zhuǎn)換結(jié)果時(shí),可工作于環(huán)形振蕩器。由于避免了穩(wěn)定外部晶振所需的“死時(shí)間”,這會(huì)進(jìn)一步節(jié)省功率。
篇4
關(guān)鍵詞:智能控制;ATmega16;壓力傳感器;紅外搖控;DS18B20;DS1302
中圖分類號(hào):TU832文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-2374 (2010)22-0117-02
節(jié)能降耗工作已經(jīng)走上了法制化的道路,采用高智能節(jié)能鍋爐控制器解決了無人看守情況下無人飲水不工作、飲水高峰時(shí)段不缺水的問題。
1系統(tǒng)結(jié)構(gòu)和總體設(shè)計(jì)方案
智能鍋爐控制器主要由:電源部分、時(shí)鐘部分、顯示部分、水位、溫度采集部分、紅外遙控器部分和輸出控制部分組成。系統(tǒng)框圖如圖1所示:
1.1加熱進(jìn)水設(shè)定
系統(tǒng)可以設(shè)定不同的5組加熱時(shí)間段和5組不同的進(jìn)水時(shí)間段,完全保證了工作時(shí)間段有充足的飲用水;設(shè)定加熱時(shí)間為全天24小時(shí)可設(shè)定,加水時(shí)間全天24小時(shí)可設(shè)定。
1.2工作模式設(shè)定
工作模式3種(周一至周五工作;周一至周六工作;周一至周日工作),可以依據(jù)工作人員工作時(shí)間來設(shè)定系統(tǒng)工作模式,不但節(jié)約了電能損耗,而且節(jié)約了人力成本。
1.3水溫、水位設(shè)定
可以分別設(shè)定水溫上下限和水位上下限;在加熱時(shí)間段內(nèi)當(dāng)前水溫等于或大于上限溫度時(shí)停止加熱;當(dāng)當(dāng)前水溫等于或低于下限濕度時(shí)開始加熱;在進(jìn)水時(shí)間段內(nèi)當(dāng)前水位等于或高于上限水位時(shí)停止進(jìn)水;當(dāng)當(dāng)前水位等于或低于下限水位時(shí)開始進(jìn)水。
1.4系統(tǒng)人性化設(shè)計(jì)
如果當(dāng)前時(shí)間段不在加熱或進(jìn)水時(shí)間段內(nèi),操作人員可以通過搖控器強(qiáng)制進(jìn)行人工加熱、人工進(jìn)水按鍵進(jìn)行加熱或進(jìn)水控制,避免了特殊情況下無飲用水的問題。
2器件選擇
2.1CPU Atmega16
Atmega16屬于Atmel公司的AVR系列單片機(jī),是一種高性能、低功耗的8位AVR微處理器,其最高主頻可達(dá)到16MHz;自帶16KB可在線編程的閃存,512字節(jié)的EEPROM、1KB的SRAM,程序可進(jìn)行加密;兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8 位定時(shí)器/ 計(jì)數(shù)器,一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16位定時(shí)器/計(jì)數(shù)器,片內(nèi)模擬比較器,一個(gè)看門狗定時(shí)器等。本系統(tǒng)中使用Atmega16大大簡化了元件,用內(nèi)部EEPROM即可存儲(chǔ)操作人員設(shè)定加熱上下限值、進(jìn)水上下限值和工作方式等,不但節(jié)約了成本還簡化了電路。
2.2水溫測量模塊實(shí)現(xiàn)
鍋爐水溫測量采用了Dallas公司生產(chǎn)的DS18B20單總線芯片,它具有線路簡單、體積小的特點(diǎn)。因此用他組成一個(gè)測溫系統(tǒng),具有線路簡單,在1根通信線可以掛很多這樣的數(shù)字溫度傳感器,十分方便DS18B20測溫范圍在-55℃~+125℃;轉(zhuǎn)換精度9~12位進(jìn)制數(shù),可編程確定轉(zhuǎn)換的位數(shù);測溫分辨率為9位精度為0.5℃,12位精度為0.0625℃;轉(zhuǎn)換時(shí)間:9位精度為93.75ms、10位精度為187.5ms、12位精度為750ms;內(nèi)部有溫度上、下限告警設(shè)置。DS18B20采用TO-92封裝模式。
2.3水位測量模塊實(shí)現(xiàn)
水位測量模塊采用了MC20B經(jīng)濟(jì)型壓力變送器,當(dāng)水位在0~1600mm之間變化時(shí)輸出信號(hào)4~20mA的線性變化,再由I/V轉(zhuǎn)換電路把電流信號(hào)轉(zhuǎn)換為0~5V的電壓信號(hào),單片機(jī)通過A/D轉(zhuǎn)換功能進(jìn)行電壓采集,再把電壓轉(zhuǎn)換為高度值。
2.4紅外搖控模塊實(shí)現(xiàn)
紅外搖控器采用的是專用紅外發(fā)射芯片CD5022,它具有低工作電壓(VDD:2.0~3.3V)低功耗(待機(jī)模式下IDD
2.5時(shí)鐘輸入模塊
時(shí)鐘輸入模塊采用了高精度實(shí)時(shí)時(shí)鐘芯片DS1302,它是一種具有內(nèi)置晶振、兩線式串行接口的高精度實(shí)時(shí)時(shí)鐘芯片。單片機(jī)通過DS1302讀取當(dāng)前時(shí)間值與設(shè)定時(shí)間相比較,比較結(jié)果做出相應(yīng)控制。
2.6繼電器輸出控制模塊
繼電器輸出控制模塊采用了ULN2003芯片作為繼電器驅(qū)動(dòng),ULN2003是高耐壓、大電流、內(nèi)部由七個(gè)硅NPN達(dá)林頓管組成的驅(qū)動(dòng)芯片,具有線路簡單、工作穩(wěn)定可靠特點(diǎn)。ULN2003可以驅(qū)動(dòng)7個(gè)繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用于開關(guān)型感性負(fù)載。每對達(dá)林頓管的額定集電極電流是500mA,使用ULN2003芯片可以簡化外部元器件,提高工作可靠性能。
2.7液晶顯示模塊
液晶顯示模塊是專為此鍋爐使用者定制的顯示屏。
液晶顯示器可同時(shí)顯示當(dāng)前水溫度、水位高度、加熱狀態(tài)、進(jìn)水狀態(tài)、出水狀態(tài)及自動(dòng)或手動(dòng)工作狀態(tài),給操作工作人員提供了最為節(jié)能的操作信息,同時(shí)給飲用者提供飲用水的情況。
3單片機(jī)程序流程圖
主程序流程圖如圖2所示:
4結(jié)語
此設(shè)計(jì)應(yīng)用了AVR系列單片機(jī)的其設(shè)備豐富、集成開發(fā)環(huán)境簡單易用、支持在線仿真等特點(diǎn),不但簡化了外部電路設(shè)計(jì)同時(shí)也提高開發(fā)效率;由于ATmega16單片機(jī)的高速度、低功耗和低價(jià)位,使得此系統(tǒng)真正體現(xiàn)了節(jié)能降耗的主旨。
參考文獻(xiàn)
[1] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990.
[2] 劉和平.單片機(jī)原理與應(yīng)用[M].重慶:重慶大學(xué)出版社,2002.
[3] 徐愛鈞.單片機(jī)高級語言C51應(yīng)用程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.
4] 陳冬云,杜敬倉,任柯燕.ATmega 128單片機(jī)原理與開發(fā)指導(dǎo)[M].機(jī)械工業(yè)出版社,2006.
篇5
關(guān)鍵詞:蓄電池;AVR微控制器;TLV5638電源控制
引言
蓄電池是飛行器電源系統(tǒng)中重要的組成部分,蓄電池的性能直接影響飛行器的安全。因此,正確維護(hù)、保養(yǎng)蓄電池就成為一項(xiàng)十分重要的工作。539CH-1型Ni-Cd蓄電池是法國SAFT公司生產(chǎn)的堿性蓄電池,該電池包含20個(gè)單體電池,額定電壓24V,額定容量53Ah。波音737客機(jī)即采用該型蓄電池。
充電和放電是該電池維護(hù)、保養(yǎng)中的主要工作。由于該電池為Ni-Cd蓄電池,為了避免記憶效應(yīng)影響電池容量,充電前需要對電池進(jìn)行放電。該電池的放電規(guī)范要求測量單體電池電壓,并記錄單體電池電壓下降到1V時(shí)的放電時(shí)間,然后在單體電池兩極間接入放電電阻。該電池的充電規(guī)范要求使用分階段定電流充電法。充電過程中要檢測電池的端電壓和充電電流,充電后期要測量單體電池的電壓,并對電壓較低的電池做相應(yīng)處理。
本設(shè)計(jì)采用AVR單片機(jī)Megal6L作為核心,可同時(shí)控制兩塊539CH-1型蓄電池的充、放電過程。Megal6L通過串行總線接收上位機(jī)的命令,然后通過SPI總線將數(shù)據(jù)發(fā)送給TLV5638。單片機(jī)通過多路模擬開關(guān)CD4053將TLV5638的兩路D/A輸出送入信號(hào)調(diào)整電路,從而完成對充放電電流的控制。放電過程中,Megal6L通過控制8D鎖存器74LS573和復(fù)合管陣列ULN2081控制放電電阻接入。
硬件設(shè)計(jì)
硬件系統(tǒng)包括串行通信電路、充電和放電控制電路、繼電器驅(qū)動(dòng)電路等模塊。
通信電路
單片機(jī)通過串口與上位機(jī)通信。Megal6L端口為TTL電平,而上位機(jī)串口為RS232C標(biāo)準(zhǔn)接口。因此,在上位機(jī)與單片機(jī)通信時(shí)需要進(jìn)行電平轉(zhuǎn)換。本設(shè)計(jì)采用MAX232完成TTL電平與RS232接口電平之間的轉(zhuǎn)換。
充電和放電控制電路
單片機(jī)收到上位機(jī)的充、放電控制命令后,通過SPI口將控制信號(hào)發(fā)送給TLV5638。TLV5638將收到的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),并送入信號(hào)調(diào)整電路。模擬控制信號(hào)經(jīng)調(diào)整后送入充電或放電電源的PI控制器,對充電和放電電流進(jìn)行控制。單片機(jī)通過CD4053選擇控制信號(hào)的輸出通道,使該控制器可同時(shí)對2塊蓄電池進(jìn)行充電和放電。
D/A變換
本設(shè)計(jì)使用雙通道12位電壓輸出型高速DA轉(zhuǎn)換器TLV5638完成數(shù)模轉(zhuǎn)換。設(shè)計(jì)中,將Mega16作為主機(jī),通過SPI口直接與TLV5638的串行接口相連。因?yàn)镸ega16的SPI口為4線串口,所以連接時(shí)單片機(jī)SPI口的PB6(MISO)懸空。
串行通信時(shí),CS引腳出現(xiàn)下降沿時(shí)通信開始,數(shù)據(jù)在SCLK的下降沿逐位移入TLV5638的內(nèi)部寄存器。最先移入的是數(shù)據(jù)的最高位。當(dāng)16位數(shù)據(jù)全部移入或CS引腳變高時(shí),TLV5638移位寄存器中的數(shù)據(jù)被存入相應(yīng)的鎖存器,鎖存器的選擇由數(shù)據(jù)中的控制字確定。因此,當(dāng)Mega16需要向TLV5638發(fā)送數(shù)據(jù)時(shí),PB7先從高電平跳到低電平,然后通過SPI口連續(xù)進(jìn)行兩次寫操作,向TLV5638發(fā)送個(gè)字節(jié)數(shù)據(jù)。兩次寫操作完成后,在SCLK的第16個(gè)上升沿,相應(yīng)鎖存器的內(nèi)容自動(dòng)更新。
應(yīng)用中,TLV5638工作于慢速正常模式,采用2.048V內(nèi)部參考電壓。更新TLV5638某一路DAC數(shù)據(jù)時(shí),必須保證另外一路數(shù)據(jù)不變。
Mega16的SPI口可采用4種不同的數(shù)據(jù)傳輸格式工作,傳輸格式由SPI控制寄存器中的CPOL位和CPHA位控制。應(yīng)用中,考慮到TLV5638的使用要求,令CPHA=0,CPOL=1(傳輸開始時(shí)采樣SCK下降沿,結(jié)束時(shí)采樣SCK上升沿)。
信號(hào)通道選擇
Mega16通過PD4和PD5以及邏輯電路控制信號(hào)的輸出通道。邏輯電路包括1片7404和2片CD4053。以TLV5638的OUTA輸出信號(hào)為例。模擬控制信號(hào)從TLV5638輸出,經(jīng)濾波后送入CD4053的X通道和Y通道。單片機(jī)PD4一方面直接與CD4053控制端A相連,另外還通過反相器7404與CD4053控制端B相連。這樣就保證A端和B端的控制信號(hào)反相,使任意時(shí)刻X、Y通道中只有一個(gè)可以輸出有效控制信號(hào),從而保證該路充電和放電不發(fā)生沖突。應(yīng)用中沒有使用CD4053的Z通道,應(yīng)將其與控制端C及使能端一起接地。
繼電器驅(qū)動(dòng)電路
放電后期,需要將電池中的剩余容量完全放出,最終使單體電池電壓下降到0V。設(shè)計(jì)中,利用繼電器將放電電阻并聯(lián)于單體電池兩極,從而達(dá)到釋放電池剩余容量的目的。繼電器由8D鎖存器74LS573和達(dá)林頓管陣列ULN2801驅(qū)動(dòng)。單片機(jī)PA0-PA7輸出控制信號(hào),PD2、3、7和PC6、7輸出5片74LS573所需的鎖存使能信號(hào)。控制信號(hào)由74LS573鎖存,然后通過ULN2801驅(qū)動(dòng)繼電器工作,將放電電阻并聯(lián)在單格電池兩端,從而完成單格電池剩余容量放電。繼電器驅(qū)動(dòng)電路原理圖如圖3所示。圖中只包含1片74LS573,其它4片控制方法類似。
軟件設(shè)計(jì)
軟件采用主從結(jié)構(gòu)。單片機(jī)收到上位機(jī)指令后,根據(jù)通信協(xié)議提取出命令字和數(shù)據(jù),然后根據(jù)命令字完成相應(yīng)的控制。軟件基于模塊化設(shè)計(jì)思想,主要包括:主程序模塊,通信程序模塊,D/A轉(zhuǎn)換與通道選擇模塊,繼電器組控制模塊等。
主程序模塊
主程序模塊完成單片機(jī)初始化,等待并處理中斷等工作。
通信程序模塊
單片機(jī)與上位機(jī)間采用RS232串口通信。單片機(jī)采用中斷方式接收上位機(jī)發(fā)出的命令,并根據(jù)接收到的數(shù)據(jù)內(nèi)容向上位機(jī)發(fā)送應(yīng)答信息。當(dāng)命令的起始標(biāo)志和結(jié)束標(biāo)志都正確時(shí),單片機(jī)向上位機(jī)發(fā)送ASCII字符‘Y’表示接收成功,然后處理收到的命令;否則,向上位機(jī)發(fā)送ASCH字符‘N’,表示發(fā)送不成功,要求上位機(jī)重新發(fā)送命令。
上位機(jī)向單片機(jī)發(fā)送的命令符合以下格式:命令以幀為單位,每幀包含7個(gè)字節(jié)。每幀包含的命令字規(guī)定了單片機(jī)的控制方式。每幀中的數(shù)據(jù)字則以ASCH碼的形式確定了充、放電電流的大小和繼電器的代號(hào)。
當(dāng)上位機(jī)需要控制充、放電電流時(shí),單片機(jī)采用查詢方式,通過SPI口向TLV5638發(fā)送命令和數(shù)據(jù),然后通過控制CD4053確定模擬控制信號(hào)輸出通道。因?yàn)镸egal6L的SPI口字寬為8位,因此必須連續(xù)進(jìn)行兩次寫操作才能完成對TLV5638的編程。
單片機(jī)收到上位機(jī)命令后,先將數(shù)據(jù)寫到PA口,然后向相應(yīng)鎖存使能位寫‘0’,將數(shù)據(jù)鎖存入74LS573中,完成對繼電器的控制。
篇6
Abstract: This article discussed the status and role of Micro Controller Technology and Application curriculum, and its curriculum design, practical teaching links and the evaluation way.
關(guān)鍵詞: 微控制器技術(shù);課程;開發(fā);改革;實(shí)踐
Key words: micro controller technology;curriculum;development;reform;practice
中圖分類號(hào):G423 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2013)27-0231-02
1 課程的地位與作用
《微控制器技術(shù)與應(yīng)用》是一門實(shí)踐性、應(yīng)用性很強(qiáng)的課程,是應(yīng)用電子技術(shù)專業(yè)的核心課程。該課程是電路設(shè)計(jì)、程序設(shè)計(jì)、軟硬結(jié)合控制的綜合應(yīng)用。該課程屬于專業(yè)課程體系的“專業(yè)綜合學(xué)習(xí)領(lǐng)域”模塊,對學(xué)生職業(yè)能力培養(yǎng)和職業(yè)素養(yǎng)提升起主要支撐作用。
2 課程設(shè)計(jì)
依據(jù)專業(yè)培養(yǎng)目標(biāo)、行業(yè)崗位要求,校企聯(lián)合制定課程標(biāo)準(zhǔn)、確定課程內(nèi)容。基于電子產(chǎn)品開發(fā)過程相對應(yīng)的工作內(nèi)容和工作過程來設(shè)計(jì)學(xué)習(xí)情景;課程教學(xué)內(nèi)容的選取基于電子企業(yè)職業(yè)崗位能力的需要予以確定,重點(diǎn)強(qiáng)調(diào)職業(yè)能力培養(yǎng)。該課程教學(xué)課時(shí)安排150課時(shí),以三階段(課時(shí)比例為1:2:2)項(xiàng)目11個(gè)學(xué)習(xí)情景為載體貫穿整個(gè)教學(xué)過程。
2.1 課程設(shè)計(jì)理念 該課程采用“職業(yè)情景、項(xiàng)目導(dǎo)向”的基于工作過程的項(xiàng)目教學(xué)模式。項(xiàng)目實(shí)戰(zhàn)部分的學(xué)習(xí)情景大多為教師科研項(xiàng)目或企業(yè)仿真項(xiàng)目,項(xiàng)目提高部分的學(xué)習(xí)情景使用企業(yè)真實(shí)項(xiàng)目進(jìn)行授課。在基于工作過程的項(xiàng)目教學(xué)中,學(xué)生通過對學(xué)習(xí)情景、任務(wù)進(jìn)行實(shí)踐和學(xué)習(xí),分角色輪崗進(jìn)行崗位訓(xùn)練。
2.2 課程內(nèi)容設(shè)計(jì) 在課程指導(dǎo)委員會(huì)的指導(dǎo)下,通過對行業(yè)、企業(yè)調(diào)查,學(xué)校與企業(yè)共同制定課程標(biāo)準(zhǔn)。分析課程對應(yīng)工作崗位,根據(jù)對電子信息類崗位需求分析,把原學(xué)科體系知識(shí)進(jìn)行解構(gòu)和重構(gòu),形成基于工作過程的課程內(nèi)容。根據(jù)項(xiàng)目教學(xué)“六步法”(資訊、計(jì)劃、決策、實(shí)施、檢查、評估)原理,對課程內(nèi)容進(jìn)一步細(xì)化,設(shè)計(jì)了“三階段353遞進(jìn)交互式”的11個(gè)學(xué)習(xí)情景內(nèi)容。設(shè)計(jì)學(xué)習(xí)情境,將微控制器技術(shù)知識(shí)點(diǎn)與軟硬件開發(fā)流程知識(shí)點(diǎn)相融合、對接,課程教學(xué)內(nèi)容融技術(shù)類知識(shí)與開發(fā)規(guī)范知識(shí)為一體。《微控制器技術(shù)與應(yīng)用》課程教學(xué)內(nèi)容按照以“職業(yè)情景”、“項(xiàng)目導(dǎo)向”方式精心選擇課程內(nèi)容、設(shè)計(jì)教學(xué)環(huán)節(jié)。采用基于工作過程的項(xiàng)目課程教學(xué)方式,項(xiàng)目來源有企業(yè)仿真項(xiàng)目、教師科研項(xiàng)目、企業(yè)真實(shí)項(xiàng)目,教學(xué)期間學(xué)生進(jìn)行電子產(chǎn)品開發(fā)的項(xiàng)目角色輪換,仿真企業(yè)崗位角色;知識(shí)內(nèi)容以夠用為原則而高于項(xiàng)目;內(nèi)容目標(biāo)明確、針對性強(qiáng),強(qiáng)調(diào)邊做邊學(xué),融理論與實(shí)踐,從實(shí)踐工作過程中獲取知識(shí)、能力。
2.3 課程過程設(shè)計(jì) 教學(xué)流程設(shè)計(jì)是基于工作過程教學(xué)設(shè)計(jì)的核心。以“職業(yè)情景為載體、項(xiàng)目為導(dǎo)向,學(xué)生為中心”來設(shè)計(jì)教學(xué)過程。校企合作編寫了適用的職業(yè)情景項(xiàng)目教材,圍繞課程內(nèi)容,確定教學(xué)目標(biāo)。
2.3.1 課程準(zhǔn)備 通過了解前續(xù)開設(shè)課程教學(xué)內(nèi)容、教學(xué)情況及學(xué)生掌握情況,確定本課程的基礎(chǔ)學(xué)習(xí)情景內(nèi)容,進(jìn)而分解任務(wù)。制定授課計(jì)劃、教學(xué)目標(biāo),優(yōu)化自編教材教學(xué)內(nèi)容。
2.3.2 課堂教學(xué) 圍繞教學(xué)目標(biāo),以“學(xué)習(xí)情境為載體,任務(wù)進(jìn)行驅(qū)動(dòng)”進(jìn)行教學(xué)內(nèi)容組織。在教學(xué)過程中,以學(xué)生為中心,借助網(wǎng)絡(luò)多媒體平臺(tái)、虛擬實(shí)驗(yàn)室等現(xiàn)代教學(xué)手段,融合使用多種教學(xué)方法,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)、積極學(xué)習(xí)、快樂學(xué)習(xí)。提高學(xué)生的學(xué)習(xí)興趣和創(chuàng)新學(xué)習(xí)能力。按照遞進(jìn)交互的學(xué)習(xí)規(guī)律把11個(gè)學(xué)習(xí)情境分成3階段教學(xué)。
基礎(chǔ)階段教學(xué),以3個(gè)學(xué)習(xí)情境為主線,按照從學(xué)習(xí)情境分解出的典型任務(wù)要求、功能及要點(diǎn),進(jìn)行“做教學(xué)”一體化教學(xué)。
實(shí)戰(zhàn)階段教學(xué),以5個(gè)學(xué)習(xí)情境為主線,重點(diǎn)學(xué)習(xí)項(xiàng)目的仿真實(shí)現(xiàn),掌握軟件編程、硬件設(shè)計(jì)技術(shù),能進(jìn)行簡單的綜合項(xiàng)目設(shè)計(jì)與仿真實(shí)現(xiàn)。要求學(xué)生能進(jìn)行完整的項(xiàng)目仿真實(shí)現(xiàn)。老師重在引導(dǎo),解決問題。安排項(xiàng)目討論,提出問題,解決問題。
提高階段教學(xué),以3個(gè)學(xué)習(xí)情境為主線,此階段重點(diǎn)是綜合項(xiàng)目設(shè)計(jì)與實(shí)現(xiàn)。主要學(xué)習(xí)綜合軟件設(shè)計(jì)思路及實(shí)現(xiàn)、硬件設(shè)計(jì)、聯(lián)調(diào)、項(xiàng)目實(shí)現(xiàn),進(jìn)而進(jìn)行文檔整理,答辯準(zhǔn)備;答辯過程展示硬件設(shè)計(jì)思路,亮點(diǎn)是軟件設(shè)計(jì)思路。并進(jìn)行成果展示、交流及分享。
2.3.3 課程延伸 在課外,學(xué)生依托電路研究所和軟件工作室進(jìn)行擴(kuò)展和延伸學(xué)習(xí)。通過參與電路研究所和軟件工作室承接的電子產(chǎn)品、軟件的開發(fā)項(xiàng)目、技術(shù)服務(wù)、科研項(xiàng)目,全面提高學(xué)生的硬件設(shè)計(jì)、硬件開發(fā)、軟件編碼及軟硬結(jié)合綜合調(diào)測等崗位能力。并且能使學(xué)生及時(shí)跟蹤微控制器技術(shù)發(fā)展新動(dòng)向,提高再學(xué)習(xí)能力。培養(yǎng)學(xué)生創(chuàng)新能力,自主學(xué)習(xí)和研究性學(xué)習(xí)能力。同時(shí),鼓勵(lì)學(xué)生參加全國電子設(shè)計(jì)競賽和軟件類競賽,鍛煉學(xué)生創(chuàng)新思維能力。
3 突出職業(yè)技能培養(yǎng)的實(shí)踐教學(xué)環(huán)節(jié)
3.1 崗位訓(xùn)練項(xiàng)目實(shí)踐環(huán)節(jié) 獨(dú)立的課程崗位訓(xùn)練實(shí)踐,安排2-4周時(shí)間。讓項(xiàng)目組成員系統(tǒng)地運(yùn)用所學(xué)知識(shí),解決電子產(chǎn)品綜合應(yīng)用問題,熟悉電子產(chǎn)品的設(shè)計(jì)、開發(fā)流程,提高學(xué)生的知識(shí)應(yīng)用能力、創(chuàng)新學(xué)習(xí)能力、延伸性學(xué)習(xí)能力,發(fā)揚(yáng)團(tuán)隊(duì)協(xié)作精神,培養(yǎng)良好職業(yè)習(xí)慣。
3.2 課外拓展項(xiàng)目實(shí)踐環(huán)節(jié) 依托“電路研究所”、“軟件工作室”、“大學(xué)生技能競賽中心”、“大學(xué)生創(chuàng)新中心”等校內(nèi)實(shí)踐平臺(tái),擴(kuò)展“校外實(shí)習(xí)基地”和“企業(yè)項(xiàng)目深入合作”等方式,給學(xué)生營造“多元化實(shí)踐學(xué)習(xí)環(huán)境”,使學(xué)生在實(shí)踐過程中強(qiáng)化知識(shí)應(yīng)用能力、提高職業(yè)技能。
3.3 企業(yè)頂崗實(shí)習(xí)項(xiàng)目實(shí)踐環(huán)節(jié) 學(xué)生進(jìn)入企業(yè)頂崗實(shí)習(xí)將持續(xù)3到6個(gè)月的時(shí)間。讓同學(xué)們在真實(shí)企業(yè)環(huán)境中系統(tǒng)地運(yùn)用所學(xué)知識(shí),解決某一方向?qū)嵱眯詥栴},熟悉電子產(chǎn)品的開發(fā)流程和技術(shù)規(guī)范等,提高學(xué)生的綜合實(shí)踐能力、創(chuàng)新能力、研究性學(xué)習(xí)能力,發(fā)揚(yáng)團(tuán)隊(duì)合作精神,培養(yǎng)良好的遵守電子產(chǎn)品規(guī)范的職業(yè)習(xí)慣。
3.4 畢業(yè)設(shè)計(jì)綜合項(xiàng)目實(shí)踐環(huán)節(jié) 獨(dú)立的“畢業(yè)設(shè)計(jì)”環(huán)節(jié)持續(xù)兩個(gè)月時(shí)間,在此過程中學(xué)生把與微控制器技術(shù)相關(guān)的硬件設(shè)計(jì)、軟件設(shè)計(jì)技術(shù)等綜合應(yīng)用起來,整體提升電子產(chǎn)品開發(fā)能力和作品效果表現(xiàn)能力及團(tuán)隊(duì)合作精神。
4 考核方式創(chuàng)新
課程考核標(biāo)準(zhǔn)由課程組老師和企業(yè)技術(shù)人員共同制定。考核以教學(xué)項(xiàng)目為單位,每完成一個(gè)學(xué)習(xí)情景即進(jìn)行與項(xiàng)目內(nèi)容相關(guān)的任務(wù),由學(xué)生、教師和企業(yè)人員共同考核,各項(xiàng)目成績按大綱要求,按比例計(jì)入總成績。主要考核學(xué)生操作規(guī)范、學(xué)習(xí)態(tài)度、專業(yè)知識(shí)、專業(yè)技能、職業(yè)道德和職業(yè)素養(yǎng)、與人溝通能力、創(chuàng)新能力、自學(xué)能力、表達(dá)能力、方法能力等。考核方式多元化,采用口試和筆試結(jié)合、過程與結(jié)果結(jié)合、模擬與現(xiàn)場結(jié)合,知識(shí)與能力結(jié)合、個(gè)人與項(xiàng)目組結(jié)合。校內(nèi)外教師、學(xué)生全程參與的基于工作過程考核標(biāo)準(zhǔn)。課程注重項(xiàng)目開發(fā)過程階段考核。綜合考核方式包括了筆試、過程操作考核、作品展示、項(xiàng)目組互評、自評及綜合答辯幾個(gè)環(huán)節(jié)。完成項(xiàng)目后,均設(shè)置學(xué)生的作品展示、項(xiàng)目組互評、綜合答辯,促使學(xué)生分享技術(shù),使學(xué)生能力在整個(gè)考核過程中提升。
5 總結(jié)
教學(xué)中引進(jìn)了企業(yè)的管理規(guī)范、工作流程,充分體現(xiàn)基于工作過程電子產(chǎn)品開發(fā)的能力訓(xùn)練,培養(yǎng)了學(xué)生規(guī)范的軟件設(shè)計(jì)、硬件設(shè)計(jì)及軟硬結(jié)合能力。注重引進(jìn)企業(yè)電子產(chǎn)品開發(fā)資源,將企業(yè)電子產(chǎn)品項(xiàng)目分解為教學(xué)學(xué)習(xí)情景和任務(wù),使學(xué)生熟悉電子產(chǎn)品開發(fā)過程,提升學(xué)生技術(shù)應(yīng)用能力和職業(yè)素養(yǎng)。通過模式創(chuàng)新,將教學(xué)過程、崗位訓(xùn)練過程、企業(yè)工作過程有機(jī)結(jié)合起來,將職業(yè)道德教育、職業(yè)素養(yǎng)培養(yǎng)、職業(yè)能力訓(xùn)練有機(jī)結(jié)合起來,取得了良好的教學(xué)效果。
參考文獻(xiàn):
[1]蔣存波.基于微處理器的觸頭電性能測試儀設(shè)計(jì)[A].2007中國儀器儀表與測控技術(shù)交流大會(huì)論文集(二)[C].2007.
篇7
分布式控制系統(tǒng)(DistributedControl System,DCS)是應(yīng)用計(jì)算機(jī)技術(shù)對生產(chǎn)過程進(jìn)行集中監(jiān)測、管理和分散控制的綜合性網(wǎng)絡(luò)系統(tǒng)。目前,采用微控制器作為分布控制核心,通過RS485網(wǎng)絡(luò)構(gòu)建的分布式控制系統(tǒng)在工業(yè)、農(nóng)業(yè)、醫(yī)療等領(lǐng)域獲得了廣泛的應(yīng)用,例如,分布式溫室環(huán)境信息監(jiān)測系統(tǒng),分布式水下電腦燈控制系統(tǒng)等等。
LPC2138是飛利浦公司推出的基于ARM7TDMI-S內(nèi)核的微控制器,它具有非常豐富的模塊,強(qiáng)大的處理和控制功能,非常易于構(gòu)建嵌入式系統(tǒng)。用它構(gòu)建的分布式控制系統(tǒng),不僅體積小,性價(jià)比高,而且還具有穩(wěn)定可靠、功能強(qiáng)大、開發(fā)周期短等特點(diǎn)。
LPC21 38微控制器介紹
LPC2138內(nèi)嵌512KB的高速Flash存儲(chǔ)器和32KB的RAM,具有豐富的外設(shè)資源:2個(gè)32位定時(shí)器(帶捕獲、比較通道);2個(gè)10位8路ADC;1個(gè)10位DAC;PWM通道;47路GPIO;9個(gè)邊沿或電平觸發(fā)的外部中斷;具有獨(dú)立電源和時(shí)鐘的RTC;多個(gè)串行接口(UART、12C、SPI、SSP)。它內(nèi)含向量中斷控制器,可配置中斷優(yōu)先級和向量地址,片內(nèi)Boot裝載程序可以實(shí)現(xiàn)在系統(tǒng),在應(yīng)用編程(ISP/IAP),通過片內(nèi)PLL可實(shí)現(xiàn)60MHz的CPU操作頻率,具有空閑和掉電2種低功耗模式,并且可通過外部中斷喚醒。
控制系統(tǒng)設(shè)計(jì)
在分布式的控制系統(tǒng)中一般采用通用的單片機(jī)作為控制處理的核心,不僅速度慢信息處理能力弱,而且一般需要附加許多電路,例如RAM、ROM、ADC、DAC、看門狗等等。采用ARM微控制器LPC2138為核心的分布式控制系統(tǒng),通過擴(kuò)展簡單的電路(顯示模塊、中斷鍵盤、RS485模塊),開發(fā)相應(yīng)的嵌入式程序即可實(shí)現(xiàn)功能強(qiáng)大的系統(tǒng),不僅具有較高的系統(tǒng)集成度和穩(wěn)定性,而且開發(fā)周期比較短。本文所設(shè)計(jì)系統(tǒng)總體,包含了OLED顯示、中斷鍵盤、RS485接口和EXT―CON接口(用來功能擴(kuò)展的預(yù)留接口)。
顯示系統(tǒng)設(shè)計(jì)
系統(tǒng)顯示模塊采用OLED顯示模塊VGSl2864E,它是64×128矩陣式單色圖形字符顯示模塊,由于采用有機(jī)發(fā)光技術(shù),無需背光源,所以與傳統(tǒng)LCD相比在陽光照射下更能呈現(xiàn)清晰的圖像和數(shù)據(jù)。另外它還具有高亮度、高對比度、寬視角、低驅(qū)動(dòng)電壓和高發(fā)光效率等優(yōu)越的特性,較寬的溫度范圍(存儲(chǔ)溫度:-30℃-80℃,工作溫度:-20℃~70℃)也能適應(yīng)更惡劣的環(huán)境。
VGS 12864E使用兩片列驅(qū)動(dòng)控制器,內(nèi)嵌64×64顯示數(shù)據(jù)RAM,RAM中每位數(shù)據(jù)對應(yīng)屏上一個(gè)點(diǎn)的亮、暗,每個(gè)半屏都被分成了按行的八頁,因?yàn)槊總€(gè)字節(jié)的數(shù)據(jù)按低位(LSB)在上,高位(MSB)在下的結(jié)構(gòu)排列,所以在提取字庫的時(shí)候,需要設(shè)置取字模的方式為:縱向取模,字節(jié)倒序。它與LPC2138的連接。ARM和OLED之間需要加電平轉(zhuǎn)換芯片,本設(shè)計(jì)采用16位雙向電平轉(zhuǎn)換芯片IDT74FCTl64245,另外進(jìn)行電平轉(zhuǎn)換時(shí)需要進(jìn)行方向控制(圖2中DIR即為方向控制腳)。
RS485接口電路設(shè)計(jì)
RS485通信部分采用TI公司的SN65HVD24收發(fā)芯片,它具有較高的共模電壓范圍(一20-25V),支持最多256個(gè)節(jié)點(diǎn),高達(dá)16kV的ESD,通信速率在500m時(shí)最高達(dá)3Mbps。為了防止串行通信時(shí)外界干擾引入微控制器,在微控制器和RS485通信芯片間加入了光電隔離電路。
無極性連接設(shè)計(jì)
實(shí)現(xiàn)無極性連接有利于工程施工,方便系統(tǒng)擴(kuò)容。如果采用差分曼徹斯特編碼的方法雖然可靠性高,但需要增加編解碼器,提高了硬件復(fù)雜性。本系統(tǒng)采用了異或門和軟件編程的方法實(shí)現(xiàn)。即在信息輸入輸出部分增加異或門進(jìn)行控制,當(dāng)連接錯(cuò)誤的時(shí)候控制引腳輸出高電平對信息取反,連接正確引腳輸出低電平信息不變。通過程序?qū)崿F(xiàn)系統(tǒng)的自動(dòng)信息監(jiān)測和自動(dòng)控制,由主機(jī)發(fā)送系統(tǒng)自檢信息,包括一個(gè)正向數(shù)據(jù)信息和反向的數(shù)據(jù)信息,在信息中包含正反信息碼,當(dāng)從機(jī)接收到這些信息的時(shí)候就可以自動(dòng)調(diào)整自己的控制端進(jìn)行相應(yīng)的控制操作。使用這種方式只需增加少許的軟硬件開銷就實(shí)現(xiàn)了無極性的控制。
在應(yīng)用編程(IAP)實(shí)現(xiàn)
許多場合(例如地下燈光控制土壤檢測)在系統(tǒng)布好后就不易進(jìn)行系統(tǒng)重新配置和程序的更新,所以采用IAP技術(shù)不僅使系統(tǒng)的適應(yīng)能力增強(qiáng),工作壽命增長而且維護(hù)比較方便。
LPC2138的IAP程序位于BootBlock中,占用12KB存儲(chǔ)空間,位于地址0x0007D000-0x0007FFFF的Flash中,同時(shí)它的最低64字節(jié)也出現(xiàn)在從地址0x00000000開始的Flash存儲(chǔ)器區(qū)域,所以復(fù)位后中斷向量被激活,跳轉(zhuǎn)到Boot Block裝載程序的入口。Boot裝載程序控制復(fù)位后的初始化操作,并提供實(shí)現(xiàn)Flash編程的方法。
IAP程序是Thumb代碼,位于地址0x7FFFFFF0(重映射后地址)處。IAP的功能可用下面的C代碼來調(diào)用。
(1)定義IAP程序的入口地址(由于IAP地址的第0位是1,因此,當(dāng)程序計(jì)數(shù)器轉(zhuǎn)移到該地址時(shí)會(huì)引起Thumb指令集的變化)
#define IAP_LOCATION0x7FFFFFFl
(2)定義數(shù)據(jù)結(jié)構(gòu)或指針
unsigned long command[5];
unsigned long result[2];
(3)定義函數(shù)類型指針
Typedef void(*IAP)(unsignedint[],unsigned int[]);
IAP iap_entry;
(4)設(shè)置函數(shù)指針
iap_entry=(IAP)IAP_LOCATION;
(5)調(diào)用IAP
iap_entry(command,result);
程序開發(fā)采用ARM公司的集成開發(fā)工具ADS1.2,把終端程序分為主程序和更新程序兩部分:
主程序用來實(shí)現(xiàn)終端的功能,是需要進(jìn)行更新的部分,更新程序僅負(fù)責(zé)主程序的更新。編譯鏈接時(shí)主程序占據(jù)0-14扇區(qū),更新程序占據(jù)22-26扇區(qū),15-21扇區(qū)用來存儲(chǔ)待更新主程序。更新程序用到的數(shù)據(jù)定義到片內(nèi)RAM 中0x40007800~0x40007FFF區(qū)域。另外為了實(shí)現(xiàn)主程序和更新程序的精確定位,設(shè)置ARMLinker中Linktype用Scattered方式,它能根據(jù)格式文件中指定的地址映射生成ELF格式的映像文件。
更新過程可大體分為程序更新準(zhǔn)備和程序更新兩個(gè)階段:
準(zhǔn)備階段分三步完成,首先主站通過RS485總線將編譯過的新終端主程序(不包含更新模塊)分成小的數(shù)據(jù)單元下傳給終端,終端將收到的經(jīng)校驗(yàn)正確的數(shù)據(jù)存儲(chǔ)到片內(nèi)Flash存儲(chǔ)器中,然后主站查詢終端代碼的接收情況,并對傳輸錯(cuò)誤的部分重新下傳進(jìn)行更正,最后主站發(fā)送啟動(dòng)更新指令,終端檢驗(yàn)程序數(shù)據(jù)正確性并置上更新標(biāo)志,停止刷新看門狗,從而使終端復(fù)位。
程序更新分兩步完成,首先終端重啟時(shí)檢測到更新標(biāo)志有效即可調(diào)用更新程序進(jìn)行程序更新,程序更新完成后再次使終端自復(fù)位,即可運(yùn)行更新后的程序代碼,完成程序更新全過程。
另外,由于IAP服務(wù)代碼是Thumb指令,用C程序直接調(diào)用時(shí)須在設(shè)置編譯參數(shù)ATPCS時(shí)選中Arm/ThumbInte2rworking項(xiàng)。由于執(zhí)行IAP命令使用片內(nèi)RAM頂端的32個(gè)字節(jié)空間,因此用戶程序不應(yīng)該使用該空間。調(diào)用IAP功能前,要關(guān)閉PLL、MAM(存儲(chǔ)器加速模塊)部件及所有中斷以及正確設(shè)置系統(tǒng)時(shí)鐘。
篇8
關(guān)鍵詞:工業(yè)繡花機(jī);控制系統(tǒng);刺繡;微控制器
1 引言
工業(yè)繡花機(jī)是當(dāng)代最先進(jìn)的繡花機(jī)械,是紡織、服裝領(lǐng)域進(jìn)行批量、規(guī)模生產(chǎn)的一種重要民生設(shè)備,也是集光、機(jī)、電和網(wǎng)絡(luò)技術(shù)于一體的特色鮮明的機(jī)電一體化設(shè)備。
我國繡花機(jī)產(chǎn)品是以低成本優(yōu)勢參與國際市場競爭的,近年國內(nèi)工業(yè)繡花機(jī)出口創(chuàng)匯大幅增長,工業(yè)繡花機(jī)的發(fā)展取得了很大的進(jìn)步,發(fā)展前景越來越好。但隨著用戶對繡花機(jī)的性能和繡花品質(zhì)要求越來越高,工業(yè)繡花機(jī)不斷的更新?lián)Q代。高速度、高精度、高智能化工業(yè)繡花機(jī)的開發(fā)成為當(dāng)今繡花機(jī)產(chǎn)業(yè)發(fā)展的趨勢。
2 研究內(nèi)容
基于我國工業(yè)繡花機(jī)專用刺繡控制器的現(xiàn)況,研究開發(fā)基于雙核LPC4357微控制器高速實(shí)時(shí)內(nèi)核的專用工業(yè)繡花機(jī)刺繡控制系統(tǒng)。整個(gè)控制系統(tǒng)包括核心控制器與動(dòng)作協(xié)控制器模塊、步進(jìn)電機(jī)控制信號(hào)模塊、主軸電機(jī)控制信號(hào)模塊、外部傳感器及開關(guān)信號(hào)模塊、針位、換色控制模塊、取、送金片機(jī)構(gòu)控制模塊等硬件模塊構(gòu)成。同時(shí)進(jìn)行刺繡功能和人機(jī)交互軟件的設(shè)計(jì),開發(fā)出一款更加簡潔、完整、可靠性高和易于移植的工業(yè)繡花機(jī)刺繡專用控制系統(tǒng)。
2.1 刺繡控制系統(tǒng)的硬件平臺(tái)設(shè)計(jì)
本項(xiàng)目研發(fā)的工業(yè)繡花機(jī)刺繡專用控制器系統(tǒng)由LPC4357芯片中的M4,M0兩個(gè)核心處理器來完成數(shù)據(jù)處理與動(dòng)作邏輯信號(hào)處理與傳送,在核心處理器外,按刺繡各執(zhí)行機(jī)構(gòu)對硬件進(jìn)行分模塊設(shè)計(jì),其功能劃分主要包括下面幾塊:(1)核心控制器與動(dòng)作協(xié)控制器模塊;(2)步進(jìn)電機(jī)控制信號(hào)模塊;(3)主軸電機(jī)控制信號(hào)模塊;(4)外部傳感器及開關(guān)信號(hào)模塊;(5)針位、換色控制模塊;(6)取、送金片機(jī)構(gòu)控制模塊。
2.2 刺繡控制系統(tǒng)軟件功能的設(shè)計(jì)
根據(jù)硬件模塊的劃分,對各模塊的功能進(jìn)一步細(xì)分,確定軟件設(shè)計(jì)內(nèi)容,主要包括以下設(shè)計(jì)內(nèi)容:(1)LPC4357雙核處理器啟動(dòng)與工作協(xié)調(diào);(2)核心處理器與協(xié)處理器外設(shè)驅(qū)動(dòng);(3)步進(jìn)電機(jī)控制算法設(shè)計(jì);(4)金片機(jī)構(gòu)控制通訊協(xié)議。
2.3 刺繡控制系統(tǒng)人機(jī)交互軟件的設(shè)計(jì)
人機(jī)交互的目的是為用戶方便瀏覽、編輯花樣,設(shè)置刺繡系統(tǒng)參數(shù)、同時(shí)監(jiān)視刺繡狀態(tài),其主要設(shè)計(jì)內(nèi)容包括:(1)液晶屏驅(qū)動(dòng)接口代碼編寫;(2)按鍵驅(qū)動(dòng)接口代碼編寫;(3)單窗口界面設(shè)計(jì)與跳轉(zhuǎn);(4)消息機(jī)制的實(shí)現(xiàn)。
3 關(guān)鍵技術(shù)
3.1 主軸PWM控制的PID算法
主軸電機(jī)的速度與當(dāng)前的刺繡的針跡長短有關(guān)系,同時(shí)又與主軸電機(jī)的初始速度相關(guān),引入了PID算法,來動(dòng)態(tài)調(diào)整當(dāng)前刺繡的速度,保證當(dāng)前刺繡的速度平穩(wěn)。
3.2 花樣文件讀取、解析、存儲(chǔ)管理技術(shù)
花樣文件讀取與解析兼容主流的18種格式,對花樣文件格式進(jìn)行格式判讀,并轉(zhuǎn)換成系統(tǒng)支持的格式。在內(nèi)部FLASH存儲(chǔ)器中建立一套文件格式,如FAT、YAFFS等,對其做存儲(chǔ)管理,方便下次用戶直接提取使用。
3.3 驅(qū)動(dòng)程序加載及測試技術(shù)
驅(qū)動(dòng)完成后對驅(qū)動(dòng)程序進(jìn)行調(diào)試,采用手動(dòng)加載的方式,同時(shí)在調(diào)試的時(shí)候,在驅(qū)動(dòng)程序中加入了一些串口輸出的調(diào)試信息,可以從中分析驅(qū)動(dòng)程序的運(yùn)行情況。驅(qū)動(dòng)程序測試重點(diǎn)檢測主軸驅(qū)動(dòng)程序與步進(jìn)驅(qū)動(dòng)程序的基本功能,以及主軸部分與步進(jìn)部分的協(xié)調(diào)功能。
4 結(jié)論
篇9
嵌入式系統(tǒng)朝著嵌入式網(wǎng)絡(luò)的趨勢發(fā)展從根本上改變了其結(jié)構(gòu) (architecture),而結(jié)構(gòu)卻是人們在選擇一個(gè)微控制器時(shí)必須考慮的。微控制器必須具有多種網(wǎng)絡(luò)協(xié)議接口;能傳輸并驗(yàn)證大量數(shù)據(jù);具有安全性,以及足夠的內(nèi)存和處理能力,以容納眾多的協(xié)議堆棧;在許多情況下,還必須在耗費(fèi)很少電能的前提下完成這些任務(wù)。而且,還必須具有確定過程序 (deterministic) 實(shí)時(shí)性能。
8位和16位處理器顯然在內(nèi)存資源和處理能力上達(dá)不到這個(gè)要求。32位的結(jié)構(gòu)雖然具有這類應(yīng)用所需要的處理能力和內(nèi)存資源,但它們很少具有實(shí)時(shí)網(wǎng)絡(luò)工業(yè)控制應(yīng)用所要求的確定過程序?qū)崟r(shí)性能和監(jiān)控管理功能。新的結(jié)構(gòu)必須具備32位的性能和足夠的帶寬,以滿足當(dāng)今高速度數(shù)據(jù)傳輸?shù)男枨螅€需要具備數(shù)據(jù)保安功能,以及確定性實(shí)時(shí)性能,而且價(jià)格應(yīng)與8位結(jié)構(gòu)相當(dāng)。
全新的32位MCU和帶寬
目前,好幾家微控制器公司包括Atmel、 ST和Philips等都在積極解決這些問題。它們采用基于ARM技術(shù)的32位微控制器,加入性能高、成本低、并具有大容量的閃存和SRAM內(nèi)存,并使產(chǎn)品的價(jià)格與8位“嵌入”產(chǎn)品相當(dāng)。這些公司也開始推出ARM 7 MCU;這種MCU 除具有標(biāo)準(zhǔn)的雙線接口 (TWI)、主/從串行外設(shè)接口 (SPI) 和異步串口控制器 (USART) 外,還內(nèi)置控制器局域網(wǎng) (CAN)、 以太網(wǎng)和/或USB接口。然而,聯(lián)網(wǎng)絕不僅僅是增加接口和協(xié)議那樣簡單,還必須進(jìn)一步提高核心處理器的能力,必須能夠應(yīng)對可能經(jīng)過它的海量數(shù)據(jù)。基本的ARM 7 和 ARM 9處理器核沒有直接內(nèi)存訪問控制器(DMA);CPU要直接地且一次一個(gè)字節(jié)地處理所有的數(shù)據(jù)。大量的或頻繁的數(shù)據(jù)傳輸將侵吞本來應(yīng)花費(fèi)在嵌入應(yīng)用程序上的處理周期。例如,在50 MHz的工作頻率下,處理2兆位 (Mbps) 的數(shù)據(jù)傳輸要耗費(fèi)ARM 7的55%資源,而要處理4Mbps的數(shù)據(jù)傳輸,整個(gè)處理器的資源都將被占用;CPU沒有時(shí)間來執(zhí)行實(shí)時(shí)控制應(yīng)用程序。4Mbps以上的數(shù)據(jù)傳輸甚至是不可能的。
因此,除非提高處理器本身傳輸數(shù)據(jù)的基本能力,否則僅僅在32位處理器上添加一個(gè)10/100以太網(wǎng)內(nèi)存訪問控制器 (MAC) 或 CAN 或USB 接口并不能解決問題。當(dāng)想到高速 SPI 串行接口和 USART 外設(shè)的數(shù)據(jù)速率可能達(dá)到 25Mbps,很明顯任何大范圍互連的嵌入式控制系統(tǒng)都必須解決數(shù)據(jù)傳輸?shù)膯栴}。
外設(shè)DMA是解決問題的關(guān)鍵
基于ARM技術(shù)的MCU可以擴(kuò)充DMA來將其數(shù)據(jù)吞吐能力提高到可接受的水平。Atmel公司率先將外設(shè)DMA控制器 (PDC) 集成在其基于ARM 7的SAM 7和基于ARM 9的SAM 9 微控制器中。PDC在外設(shè)和內(nèi)存間傳輸數(shù)據(jù),只需耗費(fèi)很少的處理器資源。該結(jié)構(gòu)體系下的大多數(shù)外設(shè)有兩個(gè)專用PDC通道,各用于接收和發(fā)送數(shù)據(jù)。每個(gè)PDC 通道的用戶接口都集成在各外設(shè)的內(nèi)存中,并有一個(gè)32位內(nèi)存指針寄存器,一個(gè)16位傳輸計(jì)數(shù)寄存器,一個(gè)用于下一個(gè)存儲(chǔ)的32位內(nèi)存指針寄存器和一個(gè)用于下一個(gè)傳輸?shù)膫鬏斢?jì)數(shù)寄存器。采用PDC可以持續(xù)傳輸來自多個(gè)外設(shè)的多個(gè)數(shù)據(jù)塊。
PDC 使處理器擺脫了數(shù)據(jù)傳輸?shù)闹刎?fù),消除了中斷開支,并有效地減少了CPU為外設(shè)進(jìn)行高速數(shù)據(jù)傳輸所須耗費(fèi)的處理時(shí)鐘周期。例如,配備PDC后的ARM 7 能達(dá)到25 Mbps的數(shù)據(jù)傳輸能力,足以支持高速SPI 或 USART傳輸,而且僅耗費(fèi) 6% 的處理器資源。這樣,剩余的 94%處理器資源仍然可用于嵌入式控制應(yīng)用
加密和數(shù)據(jù)保安
外設(shè) DMA 控制器在數(shù)據(jù)安全上也扮演關(guān)鍵的角色。如果嵌入式系統(tǒng)分布在不同的地域,而在某一地方通過公網(wǎng) (如 Internet) 控制,這時(shí)系統(tǒng)就處于開放的網(wǎng)絡(luò)環(huán)境中,對安全的要求也就大大增加了。任誰都不希望別人入侵自己樓宇的安防系統(tǒng)或HVAC系統(tǒng);或關(guān)斷電力網(wǎng);或在很短的通知時(shí)間后便對大壩開閘放水。因此,我們必須對嵌入式系統(tǒng)的訪問加以控制,數(shù)據(jù)必須采用高級加密算法加密,如高級數(shù)據(jù)加密標(biāo)準(zhǔn) (AES),數(shù)據(jù)加密標(biāo)準(zhǔn) (DES) 和三重 DES 加密 (TDES)。AES算法是一種對稱塊密碼,能用128位的密碼鍵來加密和解密128位的數(shù)據(jù)塊。DES 標(biāo)準(zhǔn)采用一個(gè)64位加密/解密密鑰來處理64位數(shù)據(jù)塊。三重 DES 則采用3個(gè) DES 密鑰,稱之為密鑰束。在三密鑰加密算法中,加密分三步完成;數(shù)據(jù)先用Key1加密;然后用Key2加密;最后再用Key3重新加密,解密時(shí)則按相反順序進(jìn)行。
軟硬件加密的比較
加密的計(jì)算密集度很高,通常需要由專門的外部處理器來協(xié)助完成。但這樣的外部處理器有一個(gè)嚴(yán)重的安全問題:在連接主處理器和這個(gè)外部安全協(xié)處理器的系統(tǒng)總線上以普通文本格式傳遞數(shù)據(jù),因而會(huì)暴露機(jī)密的信息。當(dāng)然,我們也可以對這個(gè)局部鏈路進(jìn)行加密,但這樣的話,外部處理器的原本作用 ─ 讓主處理器解脫繁重的加密計(jì)算任務(wù) ─ 就會(huì)失去。
此外,嵌入式控制系統(tǒng)的成本和空間也可能不允許使用第二個(gè)處理器。ARM 9 處理器核具有足夠的處理能力來以軟件方式處理加密/解密流,但ARM 9對應(yīng)用來說可能太昂貴或能耗太大了。另一方面,ARM 7又不具備以軟件方式處理高速加密/解密流的能力。ARM 7在全速下 (50 MHz) 只能執(zhí)行4.3 Mbps速率的AES加密流,無法跟上25 Mbps的高速SPI 或 USART 數(shù)據(jù)傳輸,更遑論100Mbps 的以太網(wǎng)傳輸。在處理4 Mbps速率數(shù)據(jù)時(shí),所有的處理器資源都被耗盡;微控制器將無法執(zhí)行任何控制功能,而成為一個(gè)專門的加密協(xié)同處理器。
由于軟件加密存在帶寬限制,在 ARM 7 上實(shí)現(xiàn)數(shù)據(jù)安全的惟一可行的方法就是在該微控制器上嵌入一個(gè)加密協(xié)同處理器,讓這個(gè)協(xié)處理器獨(dú)立于 ARM 的CPU來處理加密運(yùn)算。在 ARM7 架構(gòu)上增加一個(gè)加密引擎,將使 AES 加密的吞吐能力增加4倍,提高到20 Mbps;對于DES加密和三重DES加密,也能分別達(dá)到12.8 Mbps和11.2 Mbps。
使用外設(shè) DMA 提高加密吞吐能力
無論是在 ARM 7 上以硬件方式或在 ARM 9 上以軟件方式實(shí)現(xiàn)加密,加密/控制功能都涉及內(nèi)存和I/O間大量的數(shù)據(jù)交換,這些數(shù)據(jù)交換活動(dòng)將耗費(fèi)額外的處理器工作時(shí)間,影響應(yīng)用程序的處理。在這個(gè)問題上,外設(shè) DMA 控制器又有其用武之地。在 Atmel公司的SAM 7X 上同時(shí)采用加密/解密協(xié)同處理器和 PDC,就可將 AES 加密吞吐能力提高到80 Mbps,足以滿足寬帶數(shù)據(jù)傳輸?shù)囊蟆L砑?PDC 可使 DES 吞吐能力幾乎增加3倍,達(dá)到32.8 Mbps;而使TDES吞吐能力翻一番,達(dá)到20 Mbps。
在 SAM9X MCU 上添加一個(gè)多層總線陣列,可以進(jìn)一步增加數(shù)據(jù)帶寬。該總線矩陣可將5個(gè)先進(jìn)高速總線 (AHB) 控制 (包括處理器指令和數(shù)據(jù)總線、PDC、兩個(gè)用于USB主機(jī),以及 LCD 控制器的專用 DMA),連接到片上外設(shè)及內(nèi)置或外部存儲(chǔ)器上,以支持不同內(nèi)存、外設(shè)和I/O間的并行數(shù)據(jù)傳輸。
此外,別忘了無論這些系統(tǒng)聯(lián)網(wǎng)與否,它們都是“實(shí)時(shí)”系統(tǒng),指令和數(shù)據(jù)必須在精確的時(shí)鐘周期到達(dá)確定的位置。它們必須能檢測各種內(nèi)部失效,并從失效狀態(tài)恢復(fù),否則整個(gè)系統(tǒng)將完全失效。在這種情況下,必須采用各種監(jiān)管功能 (如欠壓檢測功能、上電復(fù)位功能、監(jiān)視定時(shí)器以及實(shí)時(shí)時(shí)鐘) 監(jiān)視系統(tǒng),并在出現(xiàn)問題時(shí)關(guān)閉系統(tǒng)。這些功能是8位和16位MCU 的標(biāo)準(zhǔn)功能,但在32位MCU中卻很罕見,尤其是基于ARM 9的MCU。因此,除了集成網(wǎng)絡(luò)協(xié)議,增加數(shù)據(jù)帶寬和提供數(shù)據(jù)安全加密外,系統(tǒng)處理器還必須具有實(shí)時(shí)系統(tǒng)所需要的這些功能。可行方法是在ARM 7微控制器上采用高速閃存來存儲(chǔ)代碼、而省去緩存。至于在ARM 9中,如果MCU內(nèi)存架構(gòu)充分發(fā)揮了ARM926EJ-S 核固有的緊密耦合內(nèi)存 (TCM) 潛力,確定過程序 (deterministic) 處理能力和高端操作系統(tǒng) (WINCE或 LINUX) 可以共存。例如,SAM9X 內(nèi)存架構(gòu)支持實(shí)現(xiàn)零等待處理 (zero-latency processing) 的單獨(dú)內(nèi)存塊,并可與透明指令和高速緩存并行。
篇10
MC68HC376是Motorola公司推出的一種新型的32位高性能單片機(jī),具有極強(qiáng)的數(shù)據(jù)處理、邏輯運(yùn)算和信息存儲(chǔ)能力,可以實(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ù)據(jù)轉(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è)自動(dò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晶振下,系統(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所示(其中的片選信號(hào)均采用10kΩ的上位電阻,圖1未畫出)。
值得注意的是:Flash和RAM均由A[1~17]尋址,實(shí)際上是一種字尋址方式,最低位A0不用。2片F(xiàn)lash和2片RAM的數(shù)字口分別接至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與外部讀寫器件沖突,引入DS和R/W為門控信號(hào)。這里,將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í)通過寫時(shí)鐘合成控制寄存器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í),F(xiàn)sys=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位可自動(dòng)得裝載計(jì)數(shù)器MCSM、4個(gè)動(dòng)作單元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è)置并啟動(dòng)CPSM。注意,CPSM的構(gòu)造值關(guān)系到實(shí)際測頻和測周結(jié)果的計(jì)算。
在實(shí)際測量中,為了提高測量精度,對于較高的頻率采用計(jì)數(shù)測頻法,外部信號(hào)經(jīng)過濾波、過零比較后同時(shí)接入MC68HC376的CTM2C腳和CTD3腳,由軟件選擇判斷實(shí)際采用的方式。測頻子程序包括測頻部分(流程如圖4)和計(jì)數(shù)測頻部分(流程如圖5)。
(1)通過測周間接測頻
當(dāng)待測頻率不高時(shí),采用測周測頻方法。DASM單元的特點(diǎn)在于不需要軟件的干預(yù)而自動(dòng)高速、精確地捕捉CTD3腳上兩個(gè)連續(xù)的上(下)跳沿,兩次捕捉的時(shí)間差即為待測信號(hào)的周期。
(2)通過計(jì)數(shù)器直接測頻
當(dāng)待測頻率較高時(shí),采用直接測頻方式。用CMSM2作定時(shí)器,利用FCSM12對CTM2C引腳的方波信號(hào)進(jìn)行計(jì)數(shù)。
(3)應(yīng)用CTM4測頻的幾個(gè)實(shí)際問題
應(yīng)用CTM4測頻的程序結(jié)構(gòu)并不復(fù)雜,但有幾個(gè)實(shí)際問題值得注意:
·啟動(dòng)CTM4后,不應(yīng)立即啟動(dòng)CPSM產(chǎn)生時(shí)鐘,否則會(huì)因?yàn)槌绦蛟谠O(shè)置相應(yīng)子單元時(shí)不同步而造成測量誤差。
·在完成一次測周后,一般應(yīng)選擇模式0停止DASM;但注意在停止DASM時(shí),實(shí)際對DASM還有一個(gè)復(fù)位動(dòng)作,所以最好在關(guān)閉DASM前讀出捕捉寄存器A、B的值。而一般的定時(shí)計(jì)數(shù)器都是在停止后讀值。
·在使用計(jì)數(shù)測頻方式時(shí),F(xiàn)CSMCNT在不溢出的狀態(tài)下最大可計(jì)量2 16Hz的頻率。這對更高頻率的測量是不夠的。設(shè)置一個(gè)溢出計(jì)數(shù)器N,在每次溢出中斷時(shí)加1計(jì)數(shù),同時(shí),因此CTM2C腳最大允許輸入為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中寫入通道號(hào)、采樣輸入時(shí)間選擇和放大模式選擇。轉(zhuǎn)換命令字表中最多可有40個(gè)CCW。
(3)構(gòu)造中斷和結(jié)果讀取
在QADC結(jié)構(gòu)寄存器QADCMCR中寫入中斷判決號(hào),注意中斷判決號(hào)應(yīng)該是非零且唯一的;寫隊(duì)列控制寄存器QACR1(2),設(shè)置中斷允許位CIE1、CIE2;寫QADC中斷寄存器,通過IRLQ1(2)區(qū)設(shè)置隊(duì)列1(2)的中斷優(yōu)先級,通過IVB區(qū)提供QADC中斷向量號(hào)的高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í)例
熱門標(biāo)簽
精品范文
1微控制器