微控制器范文

時間:2023-03-27 22:13:42

導語:如何才能寫好一篇微控制器,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

篇1

【關鍵詞】微控制器;軟硬件;抗干擾設計

隨著微控制器在各個領域中的廣泛應用,其對于現代工業的貢獻也越來越大。微控制器的抗干擾性能好壞,是影響著工業生產安全和日常使用感受的重要因素,因此必須要高度重視。然而,由于周圍環境的復雜情況,微控制器工作時會受到多重干擾。

一、干擾造成的軟件問題

微控制器內部的計數器的PC狀態通常指向我們需要其指定的地址空間的固定位置,然而,若PC狀態被破壞,程序喪失了穩定性,系統就會失控,CPU執行的指令也會隨之發生錯誤,持續性的長期錯誤,就會導致程序最后“死機”而無法運行。CPU與外部設備的接口非常敏感,一旦發生干擾,二者之間的查詢-中斷的工作方式就會被打亂。CPU不斷的進行中斷操作,重復到一定程度,就會引發系統的“死鎖”結果。軟件控制狀態受到干擾,造成輸出條件發生偏差和錯誤,從而引起軟件控制的邏輯處理失靈。

二、軟件處理干擾問題的對策

(一)設計程序進行自檢

工程師針對微控制器內部的某些單元設定特殊標志,設計隨開機自動啟動的自檢程序,對微控制器進行不斷的循環檢測,以保證系統能夠一直正常運行。

(二)冗余技術

冗余技術氛圍指令冗余和數據冗余兩種方式。

1.指令冗余

程序指令多為雙字節、三字節或多字節,超過單字節的指令在微控制器的內部計數器發生PC值混亂時容易出現“亂飛”現象,頻繁發生程序死循環。因此,操作指令應該盡量多用單字節,并在適當的地方進行人為重寫操作或靈活使用NOP指令,通過指令冗余的方法來避免干擾造成的“死機”。

在雙字節或三字節指令后緊跟著使用NOP指令,數量為兩條最佳。這樣可以保證PC數值指向操作數時,后面的指令不會被執行。需要注意的是NOP指令的數目問題,若NOP指令過多,將會影響程序的運行速度,因此,需要根據實際情況每隔幾條指令插入一條或一對NOP指令。如在跳轉指令(LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ)前或一些重要指令(SETB EA)前插入。

然而,插入NOP指令的操作沒有修正之前的錯誤,隨著錯誤的不斷累積,最終仍會影響系統運行,因此,需要編寫一些重要指令(常用RET、RETI、LCALL、LJMP、JZ、JC等),以使得系統遇到干擾時不會失控,繼續遵循著引導方向運行。

2.數據冗余

RAM是微控制器參數所存儲的區域,分為運行和備份兩個部分,微控制器斷電易造成RAM的數據破壞,從而發生CPU執行錯亂或系統無法運行的問題。因此,可以通過備份操作來保證RAM數據的保留,系統復位后,利用備份文件恢復RAM數據。RAM的備份區域建議再分,建立雙重或多重備份,其中一份作為片內RAM存在,其它備份作為片外RAM,這樣在片內RAM被堆棧操作沖毀數據時,可以保證備份數據的可用性。總之,備份數越多,就越可靠。還可以在RAM區設計專門程序進行數據的檢測和自救,增加鎖定操作,實現多重保證。

(三)利用軟件技術制作陷阱

本文之前提到的指令冗余方法適用于PC指向還處于程序區的情況,若PC指向已經飛到非程序區,就只能用軟件技術來制作陷阱了,即設置一個軟件陷阱(錯誤地址為ERR時使用NOP、LJMP ERR指令),將錯誤的程序引入專門的地址,以便程序可以對出錯問題進行處理。

軟件陷阱的設置有特定的位置:

1.正常程序不會執行到的地方。

2.表格尾部:為了保證表格的連續性。

3.不在使用狀態的EPROM單元。

4.不在使用狀態的中斷向量區。

(四)“看門狗”軟件

這種技術方法適用于指令冗余和軟件陷阱都不起作用的情況。看門狗軟件可以模仿人工方式,對程序實行監視,一旦發生“死循環”現象,就能強迫程序返回特定區域,再通過其他處理程序,使系統恢復正常。需要注意CPU會受到PC值影響故看門狗不能依賴CPU,必須能夠獨立操作。看門狗主要通過周期性的定時與CPU進行聯系來確保系統正常運行。CPU一卡機就能發現,以保證系統能及時復位。以MCS-51型號為例,晶振頻率設為6MHZ,可編程:

(五)程序自救法

程序自救法即采用指令冗余和軟件陷阱還有看門狗技術來解決CPU失控的問題。遇到干擾的入侵,程序會自動恢復至初始入口。

(六)濾波法

疊加的噪聲干擾因為其隨機性的特征,容易造成測量偏差很大,因此需要通過濾波法進行降噪處理。低通濾波方法和滑動平均濾波可以抑制周期性的干擾,中位值濾波則抑制偶然的波動干擾或儀器不穩造成的脈沖干擾。

(七)躲避法

鑒于軟件操作比硬件操作要簡單方便,因此面對電源過壓、尖峰干擾等強干擾發生時,可以采取躲避法。

在系統與大功率負載發生接通或中斷操作時,利用軟件設計停止CPU運行,避其鋒芒,這樣可以減少系統的故障頻率。

如CHMOS微控制器具有待機、掉電兩種模式,電源控制器PCON的DO值指向1則變成待機模式,計數器、指針、RAM信息自動保存;若要退出待機狀態,可用硬件復位或RETI指令。

(八)開關量軟件

開關量軟件主要是為了排除占絕大多數的瞬時輸入故障,針對離散尖脈沖干擾。

三、微控制器干擾問題的硬件處理――電磁兼容設計

微控制器抗干擾能力受到其自身電磁兼容能力的限制,想要解決微控制器的干擾問題,從硬件角度來說,就是要進行科學的電磁兼容設計。

(一)抑制客觀存在的干擾源

抑制干擾源的前提是找到干擾源,然后盡力降低干擾源的du/dt和di/dt,或者為繼電器加增續流二極管,為可控硅降低噪聲。

圖1

圖2

(二)切換耦合途徑的干擾

1.電源、接地線抗干擾

微控制器電源多余電網接通,電網中大型設備的起停會產生電壓改變,對微控制器形成干擾。這種電源耦合干擾占干擾原因的一大半,因此,需要將電源做好。在變壓器可以加增一個濾波器,過濾掉較強的傳導干擾和脈沖干擾,并限制正常電壓;或者在電路板布線時選用粗直徑的電線來降低耦合噪聲,進一步減少噪聲對電源線和地線的干擾。接地電路的點多少以1MHZ、10MHZ為分界線,不足1MHZ,介于1-10MHZ與超過10MHZ的接地形式如圖1所示。

2.隔離

隔離方式抗干擾可以通過電磁或光電方式來實現。電磁隔離主要通過變壓器來切換環路造成獨立無擾。光電隔離則通過光電耦合進行無導線傳遞電流,這一方式可以抑制尖脈沖與噪聲干擾(見圖2)。

3.屏蔽

銅鋁等材質的封閉金屬盒可以抑制電場干擾并屏蔽靜電,可以用于敏感器件的保護。

4.其他

余下還有許多硬件屏蔽干擾的方法,如磁珠、多層板的使用,接插件、模擬電壓輸入線的安裝方式等,都可以有效降低電磁干擾,鑒于篇幅有限,這里就不一一贅述了。

四、結語

微控制器的抗干擾設計涉及的情況非常復雜,其設計的好壞、完善與否,均影響著整個系統的性能發揮。本文從軟件和硬件兩個角度進行深入分析,為實際開發工作提供盡可能全面的依據。

參考文獻

[1]鄭高輝,高利輝.家用空調直流變頻控制器的抗干擾設計[J].家電科技,2013(12).

[2]尹明,張金鳳,劉吉軍.微控制器系統PCB的EMC問題和抗干擾設計[J].齊齊哈爾大學學報,2002(02).

[3]吳增桂.淺析電動機保護器系統抗干擾設計[J].科技創新導報,2010(17).

篇2

微控制器(Microcontroller)自上世紀70年代出現以來,在將近30年的時間里得到了迅猛的發展和廣泛的應用。隨著微電子技術的飛速發展,微控制器以其性能好、體積小、價格優、功能齊全等突出優點被廣泛應用于家用電器、計算和外設、通訊、工業控制、自動化生產、智能化設備以及儀器儀表等領域,成為科研、教學、工業技術改造最得力的工具。從最初采用普林斯頓結構的簡單微控制器到現在普遍采用哈佛總線結構的RISC微控制器,微控制器取得了飛速的發展。

8位微控制器目前應用數量最大的微控制器,也是目前最多公司致力耕耘的市場;其市場及價格競爭都極為激烈,各種多功能需求以及不同規格的產品推陳出新的速度也極為快速。隨著集成電路和半導體工藝技術的快速發展,FPGA和SOC技術的不斷競爭和融合,電子產品的設計逐漸向系統性能更好、功耗更小、成本更低、可靠性更高、開發更容易的方向發展。因此,迅速推出符合市場需求的高性價比、低功耗、高經濟效益的8位微控制器芯片或IP Core成為了現今不少公司競爭相逐的熱點。

2.目前8位微控制器的更新和設計趨勢

對于不同的微控制器(MCU)產品應用,不僅需要考慮不同廠家MCU的性價比,而且還需要考慮不同指令系統下MCU應用特點。針對不斷涌現出來的新的智能化電子產品,們一直在開發適合于不同嵌入式系統應用的MCU新產品[2].不同廠家的MCU產品其指令集各不相同,特別是指令集系統架構的不同,如市場上廣泛應用的MCS51系列和PIC系列微控制器則分別采用CISC指令系統和RISC指令系統。

微控制器按照指令系統可以分為CISC、RISC、類RISC(RISC-LIKE)等幾種。傳統的MCS51控制器屬于CISC型,其代碼密度高,但大多數指令需要多個時鐘周期完成。RISC型一般指令密度較低,但指令效率很高。類RISC型則兼有CISC和RISC的優點。RISC和類RISC之所以有如此高的指令效率,得益于小指令集帶來的硬布線結構和流水線結構。簡單的指令集可以用硬布線進行指令譯碼,而不需要用微碼控制的方式,提高了譯碼的效率。流水線結構將指令分成幾步完成,在流水線填滿工作時,每條指令的平均執行時間(CPI)在1個時鐘周期左右[3].一般來說,RISC比同等的CISC要快50%——70%,同時更容易設計和糾錯。

因此,目前對8位微控制器的產品開發和研究設計主要是以兼容市場上已被客戶廣泛采用的產品為前提,不斷提高性能并降低功耗以適應市場競爭和技術發展。對于原先為CISC指令系統的微控制器產品,在層出不窮的更新系列中已經漸漸的融合進了RISC思想;對于采用RISC指令系統的微控制器來說,更多的做法仍然是針對高性能低功耗的需求對其整個體系架構不斷地進行優化和改善,尤其是流水線結構的改進最為多見。本文正是在種形勢下提出的,主要討論RISC體系架構的8位微控制器產品的設計技術。

3.RISC微處理器的結構特征和設計原則

雖然現在業界對RISC 處理器應該具有什么特征還有不同的看法,但是各種RISC結構都有一些共性:(1)采用哈佛總線結構,大多數指令在一個時鐘周期內完成以便于實現結構流水化;(2)采用獨立且簡單的裝載/存儲結構;(3)指令解碼通常都是硬連線實現而不是微解碼,以便加快執行速度;(4)多數指令具有固定格式,以簡化指令編碼和譯碼;(5)較小的指令集和少數幾種尋址模式;(6)數據通道流水線化,使處理過程高度并行;(7)采用大容量高速寄存器堆(或稱為寄存器文件),盡量避免與速度較低的系統RAM交換數據。盡量將運算數據存放在寄存器中,從而減少訪問內存的次數。根據以上的討論,下文重點從體系架構的角度出發,就高性能、低功耗兩方面對8位RISC微控制器在設計中的關鍵技術進行了探討研究。

4.關鍵技術

4.1 RISC指令集的選取

控制器系統的使用跟軟件編程與硬件設計之間的規格接口密切相關,這個接口就是微控制器的指令集。指令體系結構(ISA)是進行微處理器軟硬件協同設計的前提。指令集必須完備,使所有可計算的功能都在合理的程序空間內得以實現;而且指令集又必須是高效的,以便使常用的功能可以用相對少的指令實現。因此,提供給應用軟件開發的微控制器系統必須有一個完備而高效的指令集。

指令集直接決定微控制器的內部硬件結構,同時也是用戶程序編譯生成目標代碼的依據。指令集的最終確定與整個系統所需的程序存儲器、數據存儲器、寄存器變量及存儲器尋址方式密切相關且相互制約。各個部件乃至具體的字節都應該有唯一的地址,以便指令集能夠正確對各個部件或字節進行辨認操作。因此也就有了相應的一系列針對不同產品的不同措施: 1)從所需要的地址度和相應增加的寄存器來權衡指令的長度;2)對指令進行分類并分別確定各類的指令字節格式,以簡化操作控制信號的譯碼邏輯;3)增加相應的寄存器以彌補指令字節長度的不足;4)指令字節格式分配應考慮到相應部件的結構復雜度及對應的尋址方式;5)存儲器、寄存器、I/O口是否統一尋址。以上所列舉的并不詳盡也無先后順序之分,應該同時進行分析。相應的措施所對應的性能、功耗、設計復雜度各不一樣,應統一考慮。

對ISA進行功耗分析應該從指令代碼容量和指令執行效率兩方面考慮。指令集大小、寄存器變量、存儲器尋址方式、流水線結構等技術的選定都和指令代碼密度有緊密聯系。研究發現,在RISC的精簡指令集中適當增加一些特定的復雜指令不失為提高代碼密度、保證處理器高性能、低功耗的可行方法。因此能夠產生高指令代碼密度的指令集無疑是RISC低功耗設計的首選。

4.2 具有共享區的寄存器堆的分頁設計

RISC設計思想的最主要特點是所有的操作都是面向寄存器的。利用寄存器——寄存器操作的指令進行數據傳送,加快了速度,而且還簡化了指令控制邏輯,縮小了硬布線邏輯構成的控制部件的芯片面積。

在指令中固定寄存器地址的位數必然限制寄存器的數量,但是引入高端處理器的分段、分頁的設計思想就可以擴展尋址的范圍。分段、分頁的設計思想的根本出發點在于將存儲器的線性地址分解成二維或多維地址;在指令中只表達最低維地址,而使用其它設施(如段號寄存器、頁號寄存器)用來存放高維地址。一般將寄存器堆分成若干個頁,每個頁有固定的大小,在指令中只使用寄存器的頁內地址。在系統專用寄存器中設置一個頁號寄存器,通過改變其內容來切換對不同頁寄存器的訪問。

為克服單純分頁機制中的各種缺陷,通常采用具有共享區的分頁設計,這樣不僅減少了指令中寄存器邏輯地址的位數,而且在任何時候都能夠訪問系統寄存器,同時便于不同頁寄存器之間通過共享區中的通用寄存器交換信息。當然還得有相應的邏輯地址到物理地址的映射的方法措施。

4.3 程序空間的分頁設計

由于和寄存器堆同樣的原因,在指令中若采用完整的程序空間地址,也會局限程序空間的大小,所以對程序空間通常也采用了分頁的設計思想,同時在不同頁內設置了公共程序區(若指令長度完全符合程序空間地址的要求,則無需此思想),其設計思想類同于具有共享區的寄存器分頁設計,在此不再贅述。唯一與寄存器公共區不同的是:程序公共區是為程序在不同頁之間跳轉提供平臺。

4.4 流水線技術

流水線設計與8位RISC微控制器體系架構密不可分,是整個系統的設計核心,它的選用優劣直接影響到系統的性能和功耗。

流水線技術能最大限度地利用了微控制器資源,使每個部件在每個時鐘周期都工作,大大提高了效率,但由于流水線的各個段之間存在很強的依賴關系。如果處理不當, 指令的運行將達不到預期的結果,因此必須熟知流水線的相關和轉移問題。其一為資源沖突, 即同一時間內爭用同一功能部件, 一般為同時訪問存儲器, 這就需要停頓一拍流水線; 其二為數據相關沖突, 有三種類型: RAW、WAR、WAW , 解決該沖突使用內部直通結構或者延遲一拍流水線; 其三為控制轉移沖突, 即對于條件跳轉指令, 根據運算結果判斷是否跳轉, 才能確定新的PC值, 運算結果是在執行階段后獲得, 這使流水線喪失很多的性能, 一般采用增加硬件預先獲得運算結果解決該沖突。

越是長的流水線,相關和轉移兩大問題也越嚴重:一方面導致硬件控制電路復雜程度大大增加, 另一方面, 由于流水線節拍的停頓, 導致CPI值的增大及系統性能的下降。所以,流水線并不是越長越好,找到一個速度與效率的平衡點才是最重要的。

在8位RISC微控制器的流水線設計中,存在很多種方案。不同方案所對應的面積、速度與功耗各不相同。具體的選用則應該從多個方面融合考慮。首先應該由系統的工作速率要求和流水線級數、深度推導出多種具體的流水線結構方案及其所需要的嚴格時序;然后從系統的功耗、面積、性能及由流水線相關和轉移問題引起的設計復雜度等方面考慮出發,判斷各方案的優劣;最后折衷選擇符合的最優方案。

4.5 低功耗技術

隨著半導體工業的迅猛發展,集成電路進入深亞微米階段,微處理器的時鐘頻率和芯片集成度不斷提高,功耗已在很多設計領域成為了首要關注的問題,這點最為突出的即是高性能微處理器和便攜電子設備產品。

在根據系統功能說明進行軟硬件協同設計、確定指令體系結構時,不同的設計出發點所導致的設計功耗結果差別會很大。因此整個體系架構的確定無疑是低功耗問題應該考慮的首要問題,主要體現以下幾個方面:1)盡可能根據功能需求優化指令集,簡化系統的譯碼單元和執行單元;2)通過開發硬件的并行性以及功能單元的流水執行來實現低功耗的結構;3)合理設置確定存儲器、寄存器的容量,減少所需的總線數目;4)系統硬件的各個子模塊劃分以及軟件上設置不同的工作狀態對功耗的優化非常重要。

篇3

便攜式產品的功能和性能日新月異。消費者對產品性能的要求也越來越高,需要更強大的運算能力支持;另一方面,希望產品具有更低的功耗。

盡管已經出現了很多功耗處理器,但它們的性能通常很有限。Dallas公司的系列高速微控制器在性能和功耗之間取得了一個很好的折衷,采用了8051架構——世界上最流行的微控制器之一。簡單易用、豐富的I/O資源使這種微控制器深受設計者的喜愛,并被廣泛接受。它的流行勢頭已蔓延到了便攜式領域,在很多應用中都有其用武之地。

本文旨在探討使用8051控制器時,如何降低功率的消耗,重點介紹一種改進架構的高性能8051設計。

1 時鐘頻率

任何微控制器設計中,決定功耗的一個首要因素就是系統的時鐘頻率。互補金屬氧化物半導體(CMOS)工藝的器件功耗直接正比于時鐘頻率。因此,從省電的角度考慮,將處理器運行于盡可能低的頻率比較有利。

圖1表示一個普通的8051微控制器的典型功率曲線,一個被所有便攜系統設計得所熟知的關系。一般來講,電流隨頻率的變化曲線為線性,具有一定的DC偏移。這個靜態電流由片由的靜態電路所消耗,例如比較器、運算放大器等。其數值一般很小(<1mA),是一個不可忽略的固定吸收電流。

任何功率受限的設計都應該考慮采用盡可能慢的運行速度。決定最低系統頻率,也就是最低功耗的,有很多因素,包括期望得到的系統性能、中斷響應延盡等。不管采用什么標準,最終目標是相同的:使器件的工作頻率盡可能地靠近應用的需求。

2 高速內核

要降低基于8051系統的功率消耗,最直接的辦法就是改善微控制器的效率。8051最初的設計采用了一個12時鐘周期、每機器周期兩次取指的架構。然而,高速微控制器采用的是每機器周期4個、甚至1個時鐘的內核。它們具有更高的運算效率,執行一個指令需要很少的時鐘周期,具有更快的運行速度和更高的時鐘頻率。

盡管高速核的優勢通常考慮其處理能力,它們在降低功耗方面有很重要的意義。當處理器的運行指令經過優化后,執行同一任務所需的時間很短。很多便攜式產品工作在猝發模式,其特點是只很短的活動時間,例如記錄環境數據或掃描一個條碼,而在隨后的很長時間內都處于非活動狀態。減少處理器的活動時間可以相應地降低功耗。

效率提升帶來的另一個好處是,獲得相同的性能所需的時鐘頻率可以更低。如果一個經過重新設計的內核采用4時鐘機器周期而非12時鐘,這就意味著完成同樣的工作,只需更低的晶振頻率。由于功率正比于晶振頻率,這樣,不必犧牲性能即可降低功耗。

圖2顯示三種微控制器以同樣的速度完成同一任務時的功耗情況。其中兩種是標準80C3X的衍生產品:一種是工作于每機器周期12個外部時鐘方式;另外一種是DS80C320微控制器,工作于4時鐘機器周期。測出各個器件的消耗電流,然后進行對比,保守地估計DS80C320具有250%(2.5倍)的速度提升。正如圖2所顯示的,每周期時鐘數減少后的處理器內核工作于同樣的吞吐率時,消耗的電流顯著降低,高速運行時尤其顯著。

3 集成化

將外圍功能集成于芯片內部是節省電能的方法之一。在向芯片外部驅動一個信號時,每周期時鐘數減少后的處理器內核工作于同樣的吞吐率時,以便驅動外部負載和補償DC損耗。開關功率是數字信號過渡過程中消耗的功能。開關功率可根據下面的公式估算:

PSW∝CV2/T     (1)

其中C是接收門輸入電容和連線電容的總和,T是時鐘信號周期。一個CMOS門的典型輸入電容為10pF。盡管很難精確計算出系統的開關功率,但有一點是顯然的,每個額外的外部負載或引腳都會給微控制器造成額外的功耗。

基于微控制器的系統通常都會有一定數量的外圍器件,例如從餐部的UART和上電昨位電路到看門狗定時器。8051系列的優勢之一便是將大量的外圍功能集成于片內。除了減少元件數量、簡化設計外,外圍功能的集成化也有利于降低功耗。可以認為任何外圍器件的核心功能消耗的功率是相同的,與它位于處理器的內部還是外部沒有關系。然而,將功能放在片內無疑節省了驅動外部總線所需的開關功率。

3.1 內部程序存儲器

8051另外一個通常不被視作外設功能單元是程序存儲器。所有8051的衍生產品都包含了不同容量的片內程序存儲器。這是許多系統設計所期望的,以便減少外圍元件數量和印制板面積,同時改善了便攜系統的電源壽命。正如前面提到的,集成的程序存儲器由于免去了外部總線驅動,因而降低了功耗。采用片內存儲器還有另外一個省電的原因。8051架構必須采用一個74373類型的鎖存器,以便鎖存低字節地址。圖3顯示采用內部和外部程序存儲器時的功耗情況對比。前者采用DS87C520高速微控制器和一個74AC573鎖存器,以及一片27C256EPROM,訪問時間70ns。第二個系統采用同樣的微控制器,工作于內部存儲器。兩個系統均工作在11.0592MHz,執行一個簡單、普通的程序。從圖3可以明顯看到,高頻運行的系統中省掉外部EPROM和鎖存器后,可節省多達49mA的電流。

3.2 內部數據存儲器

如前所述,采用片內存儲器取代外部RAM能夠節省電能。80C32衍生產品具有擴充了的臨時存儲器(256字節),足夠小的程序的堆棧操作和數據存儲,不必外接RAM。

對于需要更多數據存儲器或設置外部堆棧的設計,還需要額外的SRAM。雖然可以找到低功耗的SRAM,在考慮它所帶來的功耗時,還應將相關的74373系列鎖存器、驅動外部總線的容性損耗等一并考慮在內。

4 時鐘源

影響功耗的另一個重要的系統元素是時鐘源。標準8051設計通常采用內部振蕩器激勵一個外部石英晶體產生時鐘,或者采用外部晶體振蕩器。如果采用外部晶體振蕩器,時鐘的波形會影響到功耗。如果采用外部晶體振蕩器,時鐘的波形會影響到功耗。XTAL1引肚子內的輸入級用來將外部時鐘信號輸入8051內核,通常采用互補式驅動器。隨著輸入時鐘在高、低電平之間的跳動,驅動器中的互補對管會有一個短時間的同時開通過程,造成顯著的電流浪涌。對于矩 形波來說,高、低狀態之間的過渡過程非常短暫,兩管同時開通的時間最短。對于上升和下降時間比較長的波形,例如正弦或三角波,過渡過程比較長,驅動器兩管同時開通的時間也更長。這將會增加電流和功耗。

圖4表示電流消耗和波形的關系。時鐘源是一個可編程波形發生器,可以產生正弦波、三角波或方波。圖4顯示的電流是4個器件的平均值,包括傳統的和改進的高速處理核。比較發現電流消耗直接正比于時鐘波形的上升(和下降)時間。三角波具有最小的斜率,而矩形波斜率最大。采用矩形波時的電流平均要比三角波低0.75mA。這預示著在用外部時鐘振蕩器時,采用上升和下降時間更快的振蕩器將有利于降低電流功耗。這一點在較低頻率下尤為重要,此時器件需要花費更多的時間用于過渡過程。

有些8051衍生產品包含了一個片內的環形振蕩器。通常是一串反相器,脈沖在其中傳播。它可以提供一個2~4MHz的內部時鐘源,驅動器件。由于不需要使用晶體,這種振蕩器是功耗很低的時鐘源。從DS87C520高速微控制器的特性可以看出,工作于環形振蕩器時,能夠提供等同于7MHz8051的性能,而功耗僅有3.6mA。雖然環形振蕩器沒有壓電式晶體那樣穩定,它們的低拉耗以及可以忽略的上電延遲在功率管理方面占有顯要位置。

5 時鐘管理

微控制器的工作頻率是影響器件功耗最重要的一個因素。雖然系統的時鐘頻率主要取決于硬件配置,8051還是提供了一些有限的控制手段。這些手段減緩或終止器件全部或部分單元的工作時鐘。傳統的8051架構采用了兩種控制方法:空閑和停機。

    5.1 改善停機模式

停機模式是8051設計得所能利用的最低功耗狀態。在該模式下,內部振蕩器停振,器件中止工作。脫離停機模式通常靠外部復位。某些變種也可以通過外部中斷退出停機模式。

停機模式有一個缺點,就是在晶振恢復工作的一個死時間內的功耗問題。晶體振蕩器的工作依賴于石英晶體的振動。物理層限性決定了晶體振蕩器必須有一個確定的時間,才能達到足夠的振蕩器幅度來驅動器件工作。這個預熱過程不管采用內部振蕩器還是外部振蕩器都會存在。時間大約在3~12ms,與晶體和振蕩器的性能有關。

預熱過程對于功耗的作用在于,在此階段器件不執行任何有用的工作,但仍要消耗功率。如果器件頻繁地進入和退出停機模式,或者退出停機模式后只執行很短時間的任務,這種效應會變得格外顯著。事實上,如果任務非常短(<5ms),晶振啟動期間消耗的能量甚至會超過執行任務本身的消耗。如果采用環形振蕩器來實現從停機模式到快速啟動,就可避免這種延遲。這將大幅降低退出停機模式時的功率消耗。

    圖5表示兩個系統退出停機模式并執行一個短任務時的工作情況。其中一個器件包含一個內置的環形振蕩器,另一個使用傳統的外部晶振。沒有環形振蕩器的器件必須經歷一個晶振預熱期。在此期間器件不斷地消耗功率,卻沒有做任何有用的工作。第二個器件是一片DS87C520高速微控制器,片內包含一個環形振蕩器。這就允許器件在退出停機模式時能立即恢復工作。在本例中,程序執行4ms以內,間隔大約為2MHz。正如圖5所看到的,當需要退出停機模式執行短任務時,采用環形振蕩器可以大幅減少能量消耗。

某些應用中,在退出停機模式后不久,要求時鐘具有晶振的穩定度。這種情況下,環形振蕩器仍不失其優越性。緊隨著停機模式的退出,控制器應該立即啟動是晶體振蕩器。隨后可以在晶振的預熱期控制器初始化一些必要的數據或寄存器。多數高速微控制器可以用一個狀態位來標示晶體振蕩器是否達到穩定。一旦完成了晶振代碼的初始化進程,軟件可以查詢狀態位,以決定是否著手高精度定時操作。

另外一個改善停機模式效率的方法是采用中斷而不是復位方式來喚醒控制器。這種方式使處理器能夠緊接著設置STOP位的指令立即恢復工作,而不是從復位向量重新啟動。這樣就免去了對復位原因的判斷,允許處理器在最短的時間內開始有用的工作。

5.2 空閑模式

空閑模式是早期8051架構使用的第二個時鐘管理模式。該模式中止了CPU的運行,但片內的通用定時器保持工作。在功率敏感的應用中,這個定時器被用于周期性地喚醒處理器去執行任務,或者去判斷是否該執行某個任務。

由于標準的8051定時器為16位,采用16MHz的時鐘頻率時,最大定時周期只有31ms。如果需要更長的周期,就需要定時器多次溢出。這會消耗額外的功率,因為處理器必需頻繁地恢復全速工作來累積計數,但沒有執行任何有用的工作。

對于比較長的周期,最好采用比較長定時周期的內部定時器。有些8051衍生產品包含了一個看門狗定時器,也可被用來喚醒處理器。看門狗定時器可被編程為比較長的定時,可達256個時鐘周期。在16MHz的頻率下能夠提供4.2s的最長延時。假設某應用希望每幅3s從低功耗狀態喚醒,去執行任務。如果采用內部定時器去定時,處理器將不得不退出空閑模式96閃而不作有用的工作。如果采用長定時周期的看門狗定時器,則處理器只需要在執行任務的時候退出空閑狀態,完成任務后再次到低功耗狀態。

還有一個選擇就是采用帶有實時時鐘(RTC)的微處理器。DS87C530高速微處理器內置的RC能夠產生周期長達24小時的鬧鐘信號。由該鬧鐘產生的內部中斷可將處理器從空閑或停機模式中喚醒。利用RTC退出停機模式對于需要長時間掛起的系統來講是最為有效的方式。

6 功率管理模式

盡管空閑模式通過掛起運行程序而使功耗得以降低,內部定時器仍在以外部時鐘的頻率連續運行。這會消耗掉數量可觀的功率。試想一下,是否可以讓定時器工作于基本上接近待機的狀態。

一個比較好的辦法是降低整個器件的時鐘頻率。這可以由一個內部的時鐘分頻器來實現,它將外部時鐘頻率分頻后再送入CPU。這種方案已在DS87C520高速微控制器中實現。該器件使用了兩種時鐘分頻系數:功率管理模式1,輸入時鐘源被64分頻;功率管理模式2,輸入時鐘源被除以1024分頻。這些模式或以通過設置特殊功能寄存器中的對應位來實現。

圖6對DS87C520高速微控制器的時鐘分頻器和時鐘控制模式加以對比。圖6中,全速模式(除以4)、功率管理模式1(除以64)、功率管理模式2(除以1024)、空閑模式及停機模式下的電流消耗形成鮮明對比。正如所料,停機模式吸收最低的電流,因為所內部時鐘都被關掉了。兩種功率管理模式消耗的電流比空閑模式還低。這不僅降低了器件的功耗,還說明可以讓它以較低的水平持續運行。在傳統的8051結構中,任何類型的CPU運行只有兩個狀態:“全部或者沒有”。處理器被迫頻繁地運行于最高性能水平,盡管只在很短的時間內得到高性能,這會增加一些不必要的功率浪費。功率管理模式(PMM)的使用,使處理器(如系統)能夠根據實際性能需求對其功耗進行最優化管理。

6.1 中斷和PMM的使用

采用內部時鐘分頻器可能會帶來的問題是,中斷延遲會大大增加;另外,內部定時器的減慢會影響8051串口產生或同步標準波特率的能力。這會嚴重干擾處理器響應外部激勵的能力。解決方案之一就是在外部中斷或串行動被確認后,自動使處理器恢復到完全運行狀態。這種方案已經在DS87C520中得以實現。處理器的這種回切功能使其能夠迅速響應外部中斷。緊隨著中斷回答,器件將自動切回到全速(除以4)狀態,并且不需要軟件參與。

串行口的工作方式十分相似。當在串行口接收腳上檢測到下降沿(起始位)后,器件將自動切回到全速運行(除以4)。這個過程緊接著數據傳送起始,因而器件能夠以全速來正確地接收余下的傳送數據。對于傳統的8051結構,在低功耗配置中使用串口的唯一辦法是利用閑置模式。功率管理模式的使用提供了一種更低功耗的替代方案。

6.2 改進突發工作模式

在低功耗設計中,覺見的工作模式是將處理器從停機模式中喚醒,執行一個突發任務,然后再加到停機模式。在這樣的系統中,降低功耗的一個手段是提高工作頻率。初看起來,似乎匪夷所思。因為在正常工作期間,高頻率系統要比低頻率系統消耗更多的功率。然而,系統工作時消耗的靜態電流與頻率無關。在一個最終設計中,通常評估的是其能耗,以便確定電池工作壽命。這一點在評估一個高性能微控制器時尤為關鍵,因為它綜合地考慮了處理時間和處理功率。對于一個給定系統,如果它具有更小功率與時間乘積,那么它的能耗更低;而不必單獨考慮兩種參數。很多實例顯示,高速微控制器由于運行時間更短,實際能耗更低;而處理時間更長的低速處理器正好與此相反。

這一點可以通過圖6提到驗證。假定從停機模式恢復后,DS87C520讀取一個I/O端口,經過算術運行后將結果從另一端口送出,這個過程需要500個機器周期的CPU時間。按圖6所示,電流消耗在10MHz時為12.4mA,30MHz時為34.6mA。表1歸納了在兩種速度下執行讀任務時的能耗情況。從表1中可以看到,30MHz工作時的效率更高,能耗降低6%以上。

表1 執行一個500機器周期的任務時所消耗的能量和處理器速度對比

時鐘頻率機器周期所用機器周期總時間Icc電流時間積10MHz400ns500200ms12.41mA2.48mAs30MHz133ns3006.5ms34.66mA2.30mAs6.3 跑跑停停

在很多應用中,停機模式以外的時間并不完全取決于運行速度。很多情況下,處理器需要訪問一個具有固定響應時間的外圍設備,例如A/D轉換器或溫控器。此種情況下,處理器將有個突發動作。一般是觸發某個過程,隨后的一段時間內,則只有很少的或根本沒任何操作。在這種時候,一種組合的功率節省技術會更為有效。

可以用一個實例來說明在這樣一個系統中,采用具PWM的高速微處理器所帶來的好處。設想的DS87C520與一片DS1620數字溫度計/溫控器相接口。這個器件可使用標準8051串口的工作模式0串行訪問。主機處理器在某個時刻通過外部中斷將DS87C520從停機模式喚醒,并要求它從DS1620中讀取溫度數據。獲得數據后,DS87C520會將其保存于內部存儲器中,備隨后傳送。DS1620的工作類似于很多A/D轉換器:發出一個命令后啟動一次轉換,然后,經過一定延遲后轉換完成,接著,數據就可以被移走了。對于DS1620來講,轉換時間接近于1秒鐘。通過查詢器件來確定轉換是否完成。DS87C520非常適合于此種任務,因為它可以非常迅速地執行啟動和運算功能。隨后,在等待轉換完成期間,微控制器可以將其置于PMM。在傳統8051中,轉換被啟動后,可利用閑置模式將傳統8051置于低功耗狀態。在這種模式中,可利用內部的16位定時器來測量轉換時間。工作于16MHz時,傳統8051需要在轉換完成之前退出閑置模式多達32次。

本例可被進一步改進。因為DS1620是作為一個同步器件進行訪問的,不要求高精度的定時操作。這樣,微控制器在啟動轉換和讀取轉換結果時,可工作于環形振蕩器。由于避免了穩定外部晶振所需的“死時間”,這會進一步節省功率。

篇4

關鍵詞:智能控制;ATmega16;壓力傳感器;紅外搖控;DS18B20;DS1302

中圖分類號:TU832文獻標識碼:A

文章編號:1009-2374 (2010)22-0117-02

節能降耗工作已經走上了法制化的道路,采用高智能節能鍋爐控制器解決了無人看守情況下無人飲水不工作、飲水高峰時段不缺水的問題。

1系統結構和總體設計方案

智能鍋爐控制器主要由:電源部分、時鐘部分、顯示部分、水位、溫度采集部分、紅外遙控器部分和輸出控制部分組成。系統框圖如圖1所示:

1.1加熱進水設定

系統可以設定不同的5組加熱時間段和5組不同的進水時間段,完全保證了工作時間段有充足的飲用水;設定加熱時間為全天24小時可設定,加水時間全天24小時可設定。

1.2工作模式設定

工作模式3種(周一至周五工作;周一至周六工作;周一至周日工作),可以依據工作人員工作時間來設定系統工作模式,不但節約了電能損耗,而且節約了人力成本。

1.3水溫、水位設定

可以分別設定水溫上下限和水位上下限;在加熱時間段內當前水溫等于或大于上限溫度時停止加熱;當當前水溫等于或低于下限濕度時開始加熱;在進水時間段內當前水位等于或高于上限水位時停止進水;當當前水位等于或低于下限水位時開始進水。

1.4系統人性化設計

如果當前時間段不在加熱或進水時間段內,操作人員可以通過搖控器強制進行人工加熱、人工進水按鍵進行加熱或進水控制,避免了特殊情況下無飲用水的問題。

2器件選擇

2.1CPU Atmega16

Atmega16屬于Atmel公司的AVR系列單片機,是一種高性能、低功耗的8位AVR微處理器,其最高主頻可達到16MHz;自帶16KB可在線編程的閃存,512字節的EEPROM、1KB的SRAM,程序可進行加密;兩個具有獨立預分頻器和比較器功能的8 位定時器/ 計數器,一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器,片內模擬比較器,一個看門狗定時器等。本系統中使用Atmega16大大簡化了元件,用內部EEPROM即可存儲操作人員設定加熱上下限值、進水上下限值和工作方式等,不但節約了成本還簡化了電路。

2.2水溫測量模塊實現

鍋爐水溫測量采用了Dallas公司生產的DS18B20單總線芯片,它具有線路簡單、體積小的特點。因此用他組成一個測溫系統,具有線路簡單,在1根通信線可以掛很多這樣的數字溫度傳感器,十分方便DS18B20測溫范圍在-55℃~+125℃;轉換精度9~12位進制數,可編程確定轉換的位數;測溫分辨率為9位精度為0.5℃,12位精度為0.0625℃;轉換時間:9位精度為93.75ms、10位精度為187.5ms、12位精度為750ms;內部有溫度上、下限告警設置。DS18B20采用TO-92封裝模式。

2.3水位測量模塊實現

水位測量模塊采用了MC20B經濟型壓力變送器,當水位在0~1600mm之間變化時輸出信號4~20mA的線性變化,再由I/V轉換電路把電流信號轉換為0~5V的電壓信號,單片機通過A/D轉換功能進行電壓采集,再把電壓轉換為高度值。

2.4紅外搖控模塊實現

紅外搖控器采用的是專用紅外發射芯片CD5022,它具有低工作電壓(VDD:2.0~3.3V)低功耗(待機模式下IDD

2.5時鐘輸入模塊

時鐘輸入模塊采用了高精度實時時鐘芯片DS1302,它是一種具有內置晶振、兩線式串行接口的高精度實時時鐘芯片。單片機通過DS1302讀取當前時間值與設定時間相比較,比較結果做出相應控制。

2.6繼電器輸出控制模塊

繼電器輸出控制模塊采用了ULN2003芯片作為繼電器驅動,ULN2003是高耐壓、大電流、內部由七個硅NPN達林頓管組成的驅動芯片,具有線路簡單、工作穩定可靠特點。ULN2003可以驅動7個繼電器,具有高電壓輸出特性,并帶有共陰極的續流二極管使器件可用于開關型感性負載。每對達林頓管的額定集電極電流是500mA,使用ULN2003芯片可以簡化外部元器件,提高工作可靠性能。

2.7液晶顯示模塊

液晶顯示模塊是專為此鍋爐使用者定制的顯示屏。

液晶顯示器可同時顯示當前水溫度、水位高度、加熱狀態、進水狀態、出水狀態及自動或手動工作狀態,給操作工作人員提供了最為節能的操作信息,同時給飲用者提供飲用水的情況。

3單片機程序流程圖

主程序流程圖如圖2所示:

4結語

此設計應用了AVR系列單片機的其設備豐富、集成開發環境簡單易用、支持在線仿真等特點,不但簡化了外部電路設計同時也提高開發效率;由于ATmega16單片機的高速度、低功耗和低價位,使得此系統真正體現了節能降耗的主旨。

參考文獻

[1] 何立民.MCS-51系列單片機應用系統設計系統配置與接口技術[M].北京:北京航空航天大學出版社,1990.

[2] 劉和平.單片機原理與應用[M].重慶:重慶大學出版社,2002.

[3] 徐愛鈞.單片機高級語言C51應用程序設計[M].北京:電子工業出版社,2002.

4] 陳冬云,杜敬倉,任柯燕.ATmega 128單片機原理與開發指導[M].機械工業出版社,2006.

篇5

關鍵詞:蓄電池;AVR微控制器;TLV5638電源控制

引言

蓄電池是飛行器電源系統中重要的組成部分,蓄電池的性能直接影響飛行器的安全。因此,正確維護、保養蓄電池就成為一項十分重要的工作。539CH-1型Ni-Cd蓄電池是法國SAFT公司生產的堿性蓄電池,該電池包含20個單體電池,額定電壓24V,額定容量53Ah。波音737客機即采用該型蓄電池。

充電和放電是該電池維護、保養中的主要工作。由于該電池為Ni-Cd蓄電池,為了避免記憶效應影響電池容量,充電前需要對電池進行放電。該電池的放電規范要求測量單體電池電壓,并記錄單體電池電壓下降到1V時的放電時間,然后在單體電池兩極間接入放電電阻。該電池的充電規范要求使用分階段定電流充電法。充電過程中要檢測電池的端電壓和充電電流,充電后期要測量單體電池的電壓,并對電壓較低的電池做相應處理。

本設計采用AVR單片機Megal6L作為核心,可同時控制兩塊539CH-1型蓄電池的充、放電過程。Megal6L通過串行總線接收上位機的命令,然后通過SPI總線將數據發送給TLV5638。單片機通過多路模擬開關CD4053將TLV5638的兩路D/A輸出送入信號調整電路,從而完成對充放電電流的控制。放電過程中,Megal6L通過控制8D鎖存器74LS573和復合管陣列ULN2081控制放電電阻接入。

硬件設計

硬件系統包括串行通信電路、充電和放電控制電路、繼電器驅動電路等模塊。

通信電路

單片機通過串口與上位機通信。Megal6L端口為TTL電平,而上位機串口為RS232C標準接口。因此,在上位機與單片機通信時需要進行電平轉換。本設計采用MAX232完成TTL電平與RS232接口電平之間的轉換。

充電和放電控制電路

單片機收到上位機的充、放電控制命令后,通過SPI口將控制信號發送給TLV5638。TLV5638將收到的數字信號轉換成模擬信號,并送入信號調整電路。模擬控制信號經調整后送入充電或放電電源的PI控制器,對充電和放電電流進行控制。單片機通過CD4053選擇控制信號的輸出通道,使該控制器可同時對2塊蓄電池進行充電和放電。

D/A變換

本設計使用雙通道12位電壓輸出型高速DA轉換器TLV5638完成數模轉換。設計中,將Mega16作為主機,通過SPI口直接與TLV5638的串行接口相連。因為Mega16的SPI口為4線串口,所以連接時單片機SPI口的PB6(MISO)懸空。

串行通信時,CS引腳出現下降沿時通信開始,數據在SCLK的下降沿逐位移入TLV5638的內部寄存器。最先移入的是數據的最高位。當16位數據全部移入或CS引腳變高時,TLV5638移位寄存器中的數據被存入相應的鎖存器,鎖存器的選擇由數據中的控制字確定。因此,當Mega16需要向TLV5638發送數據時,PB7先從高電平跳到低電平,然后通過SPI口連續進行兩次寫操作,向TLV5638發送個字節數據。兩次寫操作完成后,在SCLK的第16個上升沿,相應鎖存器的內容自動更新。

應用中,TLV5638工作于慢速正常模式,采用2.048V內部參考電壓。更新TLV5638某一路DAC數據時,必須保證另外一路數據不變。

Mega16的SPI口可采用4種不同的數據傳輸格式工作,傳輸格式由SPI控制寄存器中的CPOL位和CPHA位控制。應用中,考慮到TLV5638的使用要求,令CPHA=0,CPOL=1(傳輸開始時采樣SCK下降沿,結束時采樣SCK上升沿)。

信號通道選擇

Mega16通過PD4和PD5以及邏輯電路控制信號的輸出通道。邏輯電路包括1片7404和2片CD4053。以TLV5638的OUTA輸出信號為例。模擬控制信號從TLV5638輸出,經濾波后送入CD4053的X通道和Y通道。單片機PD4一方面直接與CD4053控制端A相連,另外還通過反相器7404與CD4053控制端B相連。這樣就保證A端和B端的控制信號反相,使任意時刻X、Y通道中只有一個可以輸出有效控制信號,從而保證該路充電和放電不發生沖突。應用中沒有使用CD4053的Z通道,應將其與控制端C及使能端一起接地。

繼電器驅動電路

放電后期,需要將電池中的剩余容量完全放出,最終使單體電池電壓下降到0V。設計中,利用繼電器將放電電阻并聯于單體電池兩極,從而達到釋放電池剩余容量的目的。繼電器由8D鎖存器74LS573和達林頓管陣列ULN2801驅動。單片機PA0-PA7輸出控制信號,PD2、3、7和PC6、7輸出5片74LS573所需的鎖存使能信號。控制信號由74LS573鎖存,然后通過ULN2801驅動繼電器工作,將放電電阻并聯在單格電池兩端,從而完成單格電池剩余容量放電。繼電器驅動電路原理圖如圖3所示。圖中只包含1片74LS573,其它4片控制方法類似。

軟件設計

軟件采用主從結構。單片機收到上位機指令后,根據通信協議提取出命令字和數據,然后根據命令字完成相應的控制。軟件基于模塊化設計思想,主要包括:主程序模塊,通信程序模塊,D/A轉換與通道選擇模塊,繼電器組控制模塊等。

主程序模塊

主程序模塊完成單片機初始化,等待并處理中斷等工作。

通信程序模塊

單片機與上位機間采用RS232串口通信。單片機采用中斷方式接收上位機發出的命令,并根據接收到的數據內容向上位機發送應答信息。當命令的起始標志和結束標志都正確時,單片機向上位機發送ASCII字符‘Y’表示接收成功,然后處理收到的命令;否則,向上位機發送ASCH字符‘N’,表示發送不成功,要求上位機重新發送命令。

上位機向單片機發送的命令符合以下格式:命令以幀為單位,每幀包含7個字節。每幀包含的命令字規定了單片機的控制方式。每幀中的數據字則以ASCH碼的形式確定了充、放電電流的大小和繼電器的代號。

當上位機需要控制充、放電電流時,單片機采用查詢方式,通過SPI口向TLV5638發送命令和數據,然后通過控制CD4053確定模擬控制信號輸出通道。因為Megal6L的SPI口字寬為8位,因此必須連續進行兩次寫操作才能完成對TLV5638的編程。

單片機收到上位機命令后,先將數據寫到PA口,然后向相應鎖存使能位寫‘0’,將數據鎖存入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.

關鍵詞: 微控制器技術;課程;開發;改革;實踐

Key words: micro controller technology;curriculum;development;reform;practice

中圖分類號:G423 文獻標識碼:A 文章編號:1006-4311(2013)27-0231-02

1 課程的地位與作用

《微控制器技術與應用》是一門實踐性、應用性很強的課程,是應用電子技術專業的核心課程。該課程是電路設計、程序設計、軟硬結合控制的綜合應用。該課程屬于專業課程體系的“專業綜合學習領域”模塊,對學生職業能力培養和職業素養提升起主要支撐作用。

2 課程設計

依據專業培養目標、行業崗位要求,校企聯合制定課程標準、確定課程內容。基于電子產品開發過程相對應的工作內容和工作過程來設計學習情景;課程教學內容的選取基于電子企業職業崗位能力的需要予以確定,重點強調職業能力培養。該課程教學課時安排150課時,以三階段(課時比例為1:2:2)項目11個學習情景為載體貫穿整個教學過程。

2.1 課程設計理念 該課程采用“職業情景、項目導向”的基于工作過程的項目教學模式。項目實戰部分的學習情景大多為教師科研項目或企業仿真項目,項目提高部分的學習情景使用企業真實項目進行授課。在基于工作過程的項目教學中,學生通過對學習情景、任務進行實踐和學習,分角色輪崗進行崗位訓練。

2.2 課程內容設計 在課程指導委員會的指導下,通過對行業、企業調查,學校與企業共同制定課程標準。分析課程對應工作崗位,根據對電子信息類崗位需求分析,把原學科體系知識進行解構和重構,形成基于工作過程的課程內容。根據項目教學“六步法”(資訊、計劃、決策、實施、檢查、評估)原理,對課程內容進一步細化,設計了“三階段353遞進交互式”的11個學習情景內容。設計學習情境,將微控制器技術知識點與軟硬件開發流程知識點相融合、對接,課程教學內容融技術類知識與開發規范知識為一體。《微控制器技術與應用》課程教學內容按照以“職業情景”、“項目導向”方式精心選擇課程內容、設計教學環節。采用基于工作過程的項目課程教學方式,項目來源有企業仿真項目、教師科研項目、企業真實項目,教學期間學生進行電子產品開發的項目角色輪換,仿真企業崗位角色;知識內容以夠用為原則而高于項目;內容目標明確、針對性強,強調邊做邊學,融理論與實踐,從實踐工作過程中獲取知識、能力。

2.3 課程過程設計 教學流程設計是基于工作過程教學設計的核心。以“職業情景為載體、項目為導向,學生為中心”來設計教學過程。校企合作編寫了適用的職業情景項目教材,圍繞課程內容,確定教學目標。

2.3.1 課程準備 通過了解前續開設課程教學內容、教學情況及學生掌握情況,確定本課程的基礎學習情景內容,進而分解任務。制定授課計劃、教學目標,優化自編教材教學內容。

2.3.2 課堂教學 圍繞教學目標,以“學習情境為載體,任務進行驅動”進行教學內容組織。在教學過程中,以學生為中心,借助網絡多媒體平臺、虛擬實驗室等現代教學手段,融合使用多種教學方法,引導學生主動學習、積極學習、快樂學習。提高學生的學習興趣和創新學習能力。按照遞進交互的學習規律把11個學習情境分成3階段教學。

基礎階段教學,以3個學習情境為主線,按照從學習情境分解出的典型任務要求、功能及要點,進行“做教學”一體化教學。

實戰階段教學,以5個學習情境為主線,重點學習項目的仿真實現,掌握軟件編程、硬件設計技術,能進行簡單的綜合項目設計與仿真實現。要求學生能進行完整的項目仿真實現。老師重在引導,解決問題。安排項目討論,提出問題,解決問題。

提高階段教學,以3個學習情境為主線,此階段重點是綜合項目設計與實現。主要學習綜合軟件設計思路及實現、硬件設計、聯調、項目實現,進而進行文檔整理,答辯準備;答辯過程展示硬件設計思路,亮點是軟件設計思路。并進行成果展示、交流及分享。

2.3.3 課程延伸 在課外,學生依托電路研究所和軟件工作室進行擴展和延伸學習。通過參與電路研究所和軟件工作室承接的電子產品、軟件的開發項目、技術服務、科研項目,全面提高學生的硬件設計、硬件開發、軟件編碼及軟硬結合綜合調測等崗位能力。并且能使學生及時跟蹤微控制器技術發展新動向,提高再學習能力。培養學生創新能力,自主學習和研究性學習能力。同時,鼓勵學生參加全國電子設計競賽和軟件類競賽,鍛煉學生創新思維能力。

3 突出職業技能培養的實踐教學環節

3.1 崗位訓練項目實踐環節 獨立的課程崗位訓練實踐,安排2-4周時間。讓項目組成員系統地運用所學知識,解決電子產品綜合應用問題,熟悉電子產品的設計、開發流程,提高學生的知識應用能力、創新學習能力、延伸性學習能力,發揚團隊協作精神,培養良好職業習慣。

3.2 課外拓展項目實踐環節 依托“電路研究所”、“軟件工作室”、“大學生技能競賽中心”、“大學生創新中心”等校內實踐平臺,擴展“校外實習基地”和“企業項目深入合作”等方式,給學生營造“多元化實踐學習環境”,使學生在實踐過程中強化知識應用能力、提高職業技能。

3.3 企業頂崗實習項目實踐環節 學生進入企業頂崗實習將持續3到6個月的時間。讓同學們在真實企業環境中系統地運用所學知識,解決某一方向實用性問題,熟悉電子產品的開發流程和技術規范等,提高學生的綜合實踐能力、創新能力、研究性學習能力,發揚團隊合作精神,培養良好的遵守電子產品規范的職業習慣。

3.4 畢業設計綜合項目實踐環節 獨立的“畢業設計”環節持續兩個月時間,在此過程中學生把與微控制器技術相關的硬件設計、軟件設計技術等綜合應用起來,整體提升電子產品開發能力和作品效果表現能力及團隊合作精神。

4 考核方式創新

課程考核標準由課程組老師和企業技術人員共同制定。考核以教學項目為單位,每完成一個學習情景即進行與項目內容相關的任務,由學生、教師和企業人員共同考核,各項目成績按大綱要求,按比例計入總成績。主要考核學生操作規范、學習態度、專業知識、專業技能、職業道德和職業素養、與人溝通能力、創新能力、自學能力、表達能力、方法能力等。考核方式多元化,采用口試和筆試結合、過程與結果結合、模擬與現場結合,知識與能力結合、個人與項目組結合。校內外教師、學生全程參與的基于工作過程考核標準。課程注重項目開發過程階段考核。綜合考核方式包括了筆試、過程操作考核、作品展示、項目組互評、自評及綜合答辯幾個環節。完成項目后,均設置學生的作品展示、項目組互評、綜合答辯,促使學生分享技術,使學生能力在整個考核過程中提升。

5 總結

教學中引進了企業的管理規范、工作流程,充分體現基于工作過程電子產品開發的能力訓練,培養了學生規范的軟件設計、硬件設計及軟硬結合能力。注重引進企業電子產品開發資源,將企業電子產品項目分解為教學學習情景和任務,使學生熟悉電子產品開發過程,提升學生技術應用能力和職業素養。通過模式創新,將教學過程、崗位訓練過程、企業工作過程有機結合起來,將職業道德教育、職業素養培養、職業能力訓練有機結合起來,取得了良好的教學效果。

參考文獻:

[1]蔣存波.基于微處理器的觸頭電性能測試儀設計[A].2007中國儀器儀表與測控技術交流大會論文集(二)[C].2007.

篇7

分布式控制系統(DistributedControl System,DCS)是應用計算機技術對生產過程進行集中監測、管理和分散控制的綜合性網絡系統。目前,采用微控制器作為分布控制核心,通過RS485網絡構建的分布式控制系統在工業、農業、醫療等領域獲得了廣泛的應用,例如,分布式溫室環境信息監測系統,分布式水下電腦燈控制系統等等。

LPC2138是飛利浦公司推出的基于ARM7TDMI-S內核的微控制器,它具有非常豐富的模塊,強大的處理和控制功能,非常易于構建嵌入式系統。用它構建的分布式控制系統,不僅體積小,性價比高,而且還具有穩定可靠、功能強大、開發周期短等特點。

LPC21 38微控制器介紹

LPC2138內嵌512KB的高速Flash存儲器和32KB的RAM,具有豐富的外設資源:2個32位定時器(帶捕獲、比較通道);2個10位8路ADC;1個10位DAC;PWM通道;47路GPIO;9個邊沿或電平觸發的外部中斷;具有獨立電源和時鐘的RTC;多個串行接口(UART、12C、SPI、SSP)。它內含向量中斷控制器,可配置中斷優先級和向量地址,片內Boot裝載程序可以實現在系統,在應用編程(ISP/IAP),通過片內PLL可實現60MHz的CPU操作頻率,具有空閑和掉電2種低功耗模式,并且可通過外部中斷喚醒。

控制系統設計

在分布式的控制系統中一般采用通用的單片機作為控制處理的核心,不僅速度慢信息處理能力弱,而且一般需要附加許多電路,例如RAM、ROM、ADC、DAC、看門狗等等。采用ARM微控制器LPC2138為核心的分布式控制系統,通過擴展簡單的電路(顯示模塊、中斷鍵盤、RS485模塊),開發相應的嵌入式程序即可實現功能強大的系統,不僅具有較高的系統集成度和穩定性,而且開發周期比較短。本文所設計系統總體,包含了OLED顯示、中斷鍵盤、RS485接口和EXT―CON接口(用來功能擴展的預留接口)。

顯示系統設計

系統顯示模塊采用OLED顯示模塊VGSl2864E,它是64×128矩陣式單色圖形字符顯示模塊,由于采用有機發光技術,無需背光源,所以與傳統LCD相比在陽光照射下更能呈現清晰的圖像和數據。另外它還具有高亮度、高對比度、寬視角、低驅動電壓和高發光效率等優越的特性,較寬的溫度范圍(存儲溫度:-30℃-80℃,工作溫度:-20℃~70℃)也能適應更惡劣的環境。

VGS 12864E使用兩片列驅動控制器,內嵌64×64顯示數據RAM,RAM中每位數據對應屏上一個點的亮、暗,每個半屏都被分成了按行的八頁,因為每個字節的數據按低位(LSB)在上,高位(MSB)在下的結構排列,所以在提取字庫的時候,需要設置取字模的方式為:縱向取模,字節倒序。它與LPC2138的連接。ARM和OLED之間需要加電平轉換芯片,本設計采用16位雙向電平轉換芯片IDT74FCTl64245,另外進行電平轉換時需要進行方向控制(圖2中DIR即為方向控制腳)。

RS485接口電路設計

RS485通信部分采用TI公司的SN65HVD24收發芯片,它具有較高的共模電壓范圍(一20-25V),支持最多256個節點,高達16kV的ESD,通信速率在500m時最高達3Mbps。為了防止串行通信時外界干擾引入微控制器,在微控制器和RS485通信芯片間加入了光電隔離電路。

無極性連接設計

實現無極性連接有利于工程施工,方便系統擴容。如果采用差分曼徹斯特編碼的方法雖然可靠性高,但需要增加編解碼器,提高了硬件復雜性。本系統采用了異或門和軟件編程的方法實現。即在信息輸入輸出部分增加異或門進行控制,當連接錯誤的時候控制引腳輸出高電平對信息取反,連接正確引腳輸出低電平信息不變。通過程序實現系統的自動信息監測和自動控制,由主機發送系統自檢信息,包括一個正向數據信息和反向的數據信息,在信息中包含正反信息碼,當從機接收到這些信息的時候就可以自動調整自己的控制端進行相應的控制操作。使用這種方式只需增加少許的軟硬件開銷就實現了無極性的控制。

在應用編程(IAP)實現

許多場合(例如地下燈光控制土壤檢測)在系統布好后就不易進行系統重新配置和程序的更新,所以采用IAP技術不僅使系統的適應能力增強,工作壽命增長而且維護比較方便。

LPC2138的IAP程序位于BootBlock中,占用12KB存儲空間,位于地址0x0007D000-0x0007FFFF的Flash中,同時它的最低64字節也出現在從地址0x00000000開始的Flash存儲器區域,所以復位后中斷向量被激活,跳轉到Boot Block裝載程序的入口。Boot裝載程序控制復位后的初始化操作,并提供實現Flash編程的方法。

IAP程序是Thumb代碼,位于地址0x7FFFFFF0(重映射后地址)處。IAP的功能可用下面的C代碼來調用。

(1)定義IAP程序的入口地址(由于IAP地址的第0位是1,因此,當程序計數器轉移到該地址時會引起Thumb指令集的變化)

#define IAP_LOCATION0x7FFFFFFl

(2)定義數據結構或指針

unsigned long command[5];

unsigned long result[2];

(3)定義函數類型指針

Typedef void(*IAP)(unsignedint[],unsigned int[]);

IAP iap_entry;

(4)設置函數指針

iap_entry=(IAP)IAP_LOCATION;

(5)調用IAP

iap_entry(command,result);

程序開發采用ARM公司的集成開發工具ADS1.2,把終端程序分為主程序和更新程序兩部分:

主程序用來實現終端的功能,是需要進行更新的部分,更新程序僅負責主程序的更新。編譯鏈接時主程序占據0-14扇區,更新程序占據22-26扇區,15-21扇區用來存儲待更新主程序。更新程序用到的數據定義到片內RAM 中0x40007800~0x40007FFF區域。另外為了實現主程序和更新程序的精確定位,設置ARMLinker中Linktype用Scattered方式,它能根據格式文件中指定的地址映射生成ELF格式的映像文件。

更新過程可大體分為程序更新準備和程序更新兩個階段:

準備階段分三步完成,首先主站通過RS485總線將編譯過的新終端主程序(不包含更新模塊)分成小的數據單元下傳給終端,終端將收到的經校驗正確的數據存儲到片內Flash存儲器中,然后主站查詢終端代碼的接收情況,并對傳輸錯誤的部分重新下傳進行更正,最后主站發送啟動更新指令,終端檢驗程序數據正確性并置上更新標志,停止刷新看門狗,從而使終端復位。

程序更新分兩步完成,首先終端重啟時檢測到更新標志有效即可調用更新程序進行程序更新,程序更新完成后再次使終端自復位,即可運行更新后的程序代碼,完成程序更新全過程。

另外,由于IAP服務代碼是Thumb指令,用C程序直接調用時須在設置編譯參數ATPCS時選中Arm/ThumbInte2rworking項。由于執行IAP命令使用片內RAM頂端的32個字節空間,因此用戶程序不應該使用該空間。調用IAP功能前,要關閉PLL、MAM(存儲器加速模塊)部件及所有中斷以及正確設置系統時鐘。

篇8

關鍵詞:工業繡花機;控制系統;刺繡;微控制器

1 引言

工業繡花機是當代最先進的繡花機械,是紡織、服裝領域進行批量、規模生產的一種重要民生設備,也是集光、機、電和網絡技術于一體的特色鮮明的機電一體化設備。

我國繡花機產品是以低成本優勢參與國際市場競爭的,近年國內工業繡花機出口創匯大幅增長,工業繡花機的發展取得了很大的進步,發展前景越來越好。但隨著用戶對繡花機的性能和繡花品質要求越來越高,工業繡花機不斷的更新換代。高速度、高精度、高智能化工業繡花機的開發成為當今繡花機產業發展的趨勢。

2 研究內容

基于我國工業繡花機專用刺繡控制器的現況,研究開發基于雙核LPC4357微控制器高速實時內核的專用工業繡花機刺繡控制系統。整個控制系統包括核心控制器與動作協控制器模塊、步進電機控制信號模塊、主軸電機控制信號模塊、外部傳感器及開關信號模塊、針位、換色控制模塊、取、送金片機構控制模塊等硬件模塊構成。同時進行刺繡功能和人機交互軟件的設計,開發出一款更加簡潔、完整、可靠性高和易于移植的工業繡花機刺繡專用控制系統。

2.1 刺繡控制系統的硬件平臺設計

本項目研發的工業繡花機刺繡專用控制器系統由LPC4357芯片中的M4,M0兩個核心處理器來完成數據處理與動作邏輯信號處理與傳送,在核心處理器外,按刺繡各執行機構對硬件進行分模塊設計,其功能劃分主要包括下面幾塊:(1)核心控制器與動作協控制器模塊;(2)步進電機控制信號模塊;(3)主軸電機控制信號模塊;(4)外部傳感器及開關信號模塊;(5)針位、換色控制模塊;(6)取、送金片機構控制模塊。

2.2 刺繡控制系統軟件功能的設計

根據硬件模塊的劃分,對各模塊的功能進一步細分,確定軟件設計內容,主要包括以下設計內容:(1)LPC4357雙核處理器啟動與工作協調;(2)核心處理器與協處理器外設驅動;(3)步進電機控制算法設計;(4)金片機構控制通訊協議。

2.3 刺繡控制系統人機交互軟件的設計

人機交互的目的是為用戶方便瀏覽、編輯花樣,設置刺繡系統參數、同時監視刺繡狀態,其主要設計內容包括:(1)液晶屏驅動接口代碼編寫;(2)按鍵驅動接口代碼編寫;(3)單窗口界面設計與跳轉;(4)消息機制的實現。

3 關鍵技術

3.1 主軸PWM控制的PID算法

主軸電機的速度與當前的刺繡的針跡長短有關系,同時又與主軸電機的初始速度相關,引入了PID算法,來動態調整當前刺繡的速度,保證當前刺繡的速度平穩。

3.2 花樣文件讀取、解析、存儲管理技術

花樣文件讀取與解析兼容主流的18種格式,對花樣文件格式進行格式判讀,并轉換成系統支持的格式。在內部FLASH存儲器中建立一套文件格式,如FAT、YAFFS等,對其做存儲管理,方便下次用戶直接提取使用。

3.3 驅動程序加載及測試技術

驅動完成后對驅動程序進行調試,采用手動加載的方式,同時在調試的時候,在驅動程序中加入了一些串口輸出的調試信息,可以從中分析驅動程序的運行情況。驅動程序測試重點檢測主軸驅動程序與步進驅動程序的基本功能,以及主軸部分與步進部分的協調功能。

4 結論

篇9

嵌入式系統朝著嵌入式網絡的趨勢發展從根本上改變了其結構 (architecture),而結構卻是人們在選擇一個微控制器時必須考慮的。微控制器必須具有多種網絡協議接口;能傳輸并驗證大量數據;具有安全性,以及足夠的內存和處理能力,以容納眾多的協議堆棧;在許多情況下,還必須在耗費很少電能的前提下完成這些任務。而且,還必須具有確定過程序 (deterministic) 實時性能。

8位和16位處理器顯然在內存資源和處理能力上達不到這個要求。32位的結構雖然具有這類應用所需要的處理能力和內存資源,但它們很少具有實時網絡工業控制應用所要求的確定過程序實時性能和監控管理功能。新的結構必須具備32位的性能和足夠的帶寬,以滿足當今高速度數據傳輸的需求,還需要具備數據保安功能,以及確定性實時性能,而且價格應與8位結構相當。

全新的32位MCU和帶寬

目前,好幾家微控制器公司包括Atmel、 ST和Philips等都在積極解決這些問題。它們采用基于ARM技術的32位微控制器,加入性能高、成本低、并具有大容量的閃存和SRAM內存,并使產品的價格與8位“嵌入”產品相當。這些公司也開始推出ARM 7 MCU;這種MCU 除具有標準的雙線接口 (TWI)、主/從串行外設接口 (SPI) 和異步串口控制器 (USART) 外,還內置控制器局域網 (CAN)、 以太網和/或USB接口。然而,聯網絕不僅僅是增加接口和協議那樣簡單,還必須進一步提高核心處理器的能力,必須能夠應對可能經過它的海量數據。基本的ARM 7 和 ARM 9處理器核沒有直接內存訪問控制器(DMA);CPU要直接地且一次一個字節地處理所有的數據。大量的或頻繁的數據傳輸將侵吞本來應花費在嵌入應用程序上的處理周期。例如,在50 MHz的工作頻率下,處理2兆位 (Mbps) 的數據傳輸要耗費ARM 7的55%資源,而要處理4Mbps的數據傳輸,整個處理器的資源都將被占用;CPU沒有時間來執行實時控制應用程序。4Mbps以上的數據傳輸甚至是不可能的。

因此,除非提高處理器本身傳輸數據的基本能力,否則僅僅在32位處理器上添加一個10/100以太網內存訪問控制器 (MAC) 或 CAN 或USB 接口并不能解決問題。當想到高速 SPI 串行接口和 USART 外設的數據速率可能達到 25Mbps,很明顯任何大范圍互連的嵌入式控制系統都必須解決數據傳輸的問題。

外設DMA是解決問題的關鍵

基于ARM技術的MCU可以擴充DMA來將其數據吞吐能力提高到可接受的水平。Atmel公司率先將外設DMA控制器 (PDC) 集成在其基于ARM 7的SAM 7和基于ARM 9的SAM 9 微控制器中。PDC在外設和內存間傳輸數據,只需耗費很少的處理器資源。該結構體系下的大多數外設有兩個專用PDC通道,各用于接收和發送數據。每個PDC 通道的用戶接口都集成在各外設的內存中,并有一個32位內存指針寄存器,一個16位傳輸計數寄存器,一個用于下一個存儲的32位內存指針寄存器和一個用于下一個傳輸的傳輸計數寄存器。采用PDC可以持續傳輸來自多個外設的多個數據塊。

PDC 使處理器擺脫了數據傳輸的重負,消除了中斷開支,并有效地減少了CPU為外設進行高速數據傳輸所須耗費的處理時鐘周期。例如,配備PDC后的ARM 7 能達到25 Mbps的數據傳輸能力,足以支持高速SPI 或 USART傳輸,而且僅耗費 6% 的處理器資源。這樣,剩余的 94%處理器資源仍然可用于嵌入式控制應用

加密和數據保安

外設 DMA 控制器在數據安全上也扮演關鍵的角色。如果嵌入式系統分布在不同的地域,而在某一地方通過公網 (如 Internet) 控制,這時系統就處于開放的網絡環境中,對安全的要求也就大大增加了。任誰都不希望別人入侵自己樓宇的安防系統或HVAC系統;或關斷電力網;或在很短的通知時間后便對大壩開閘放水。因此,我們必須對嵌入式系統的訪問加以控制,數據必須采用高級加密算法加密,如高級數據加密標準 (AES),數據加密標準 (DES) 和三重 DES 加密 (TDES)。AES算法是一種對稱塊密碼,能用128位的密碼鍵來加密和解密128位的數據塊。DES 標準采用一個64位加密/解密密鑰來處理64位數據塊。三重 DES 則采用3個 DES 密鑰,稱之為密鑰束。在三密鑰加密算法中,加密分三步完成;數據先用Key1加密;然后用Key2加密;最后再用Key3重新加密,解密時則按相反順序進行。

軟硬件加密的比較

加密的計算密集度很高,通常需要由專門的外部處理器來協助完成。但這樣的外部處理器有一個嚴重的安全問題:在連接主處理器和這個外部安全協處理器的系統總線上以普通文本格式傳遞數據,因而會暴露機密的信息。當然,我們也可以對這個局部鏈路進行加密,但這樣的話,外部處理器的原本作用 ─ 讓主處理器解脫繁重的加密計算任務 ─ 就會失去。

此外,嵌入式控制系統的成本和空間也可能不允許使用第二個處理器。ARM 9 處理器核具有足夠的處理能力來以軟件方式處理加密/解密流,但ARM 9對應用來說可能太昂貴或能耗太大了。另一方面,ARM 7又不具備以軟件方式處理高速加密/解密流的能力。ARM 7在全速下 (50 MHz) 只能執行4.3 Mbps速率的AES加密流,無法跟上25 Mbps的高速SPI 或 USART 數據傳輸,更遑論100Mbps 的以太網傳輸。在處理4 Mbps速率數據時,所有的處理器資源都被耗盡;微控制器將無法執行任何控制功能,而成為一個專門的加密協同處理器。

由于軟件加密存在帶寬限制,在 ARM 7 上實現數據安全的惟一可行的方法就是在該微控制器上嵌入一個加密協同處理器,讓這個協處理器獨立于 ARM 的CPU來處理加密運算。在 ARM7 架構上增加一個加密引擎,將使 AES 加密的吞吐能力增加4倍,提高到20 Mbps;對于DES加密和三重DES加密,也能分別達到12.8 Mbps和11.2 Mbps。

使用外設 DMA 提高加密吞吐能力

無論是在 ARM 7 上以硬件方式或在 ARM 9 上以軟件方式實現加密,加密/控制功能都涉及內存和I/O間大量的數據交換,這些數據交換活動將耗費額外的處理器工作時間,影響應用程序的處理。在這個問題上,外設 DMA 控制器又有其用武之地。在 Atmel公司的SAM 7X 上同時采用加密/解密協同處理器和 PDC,就可將 AES 加密吞吐能力提高到80 Mbps,足以滿足寬帶數據傳輸的要求。添加 PDC 可使 DES 吞吐能力幾乎增加3倍,達到32.8 Mbps;而使TDES吞吐能力翻一番,達到20 Mbps。

在 SAM9X MCU 上添加一個多層總線陣列,可以進一步增加數據帶寬。該總線矩陣可將5個先進高速總線 (AHB) 控制 (包括處理器指令和數據總線、PDC、兩個用于USB主機,以及 LCD 控制器的專用 DMA),連接到片上外設及內置或外部存儲器上,以支持不同內存、外設和I/O間的并行數據傳輸。

此外,別忘了無論這些系統聯網與否,它們都是“實時”系統,指令和數據必須在精確的時鐘周期到達確定的位置。它們必須能檢測各種內部失效,并從失效狀態恢復,否則整個系統將完全失效。在這種情況下,必須采用各種監管功能 (如欠壓檢測功能、上電復位功能、監視定時器以及實時時鐘) 監視系統,并在出現問題時關閉系統。這些功能是8位和16位MCU 的標準功能,但在32位MCU中卻很罕見,尤其是基于ARM 9的MCU。因此,除了集成網絡協議,增加數據帶寬和提供數據安全加密外,系統處理器還必須具有實時系統所需要的這些功能。可行方法是在ARM 7微控制器上采用高速閃存來存儲代碼、而省去緩存。至于在ARM 9中,如果MCU內存架構充分發揮了ARM926EJ-S 核固有的緊密耦合內存 (TCM) 潛力,確定過程序 (deterministic) 處理能力和高端操作系統 (WINCE或 LINUX) 可以共存。例如,SAM9X 內存架構支持實現零等待處理 (zero-latency processing) 的單獨內存塊,并可與透明指令和高速緩存并行。

篇10

MC68HC376是Motorola公司推出的一種新型的32位高性能單片機,具有極強的數據處理、邏輯運算和信息存儲能力,可以實現諸如人工智能、模糊控制等復雜的控制運算模型,有很好的開發前景。其開發手段簡單、方便。芯片支持BDM(Background Debug Mode)模式,通過簡易的專用電纜接口,而不需要使用傳統的仿真器和編程器就可以直接對微控制器系統進行仿真開發和燒錄程序。本文介紹了在電力系統保護中應用MC68HC376的一種實際開發方案。

1 MC68HC376的基本特性

MC68HC376具有速度快、并行處理能力強、可靠性高、功耗低、功能強大等優點。與目前常用的8位、16位微控制器比,其片內資源極其豐富,適應于各種控制場合;內部集成度高,硬件可靠性和穩定性強,外部擴展工作少,開發周期短。

    1.1 主要功能模塊

MC68HC376為160腳的封裝結構。其主要功能模塊包括32位CPU;系統集成模塊(SIM)、4KB備用RAM;8KB片內ROM;10位隊列式的模數轉換器(QADC),具有強大的數據轉換控制功能;隊列式串行通信模塊(QSM),可以方便地實現同步、異步通信功能;可構造時鐘模塊(CTM4),具有多種強大的定時、計數和脈沖調制功能;時間處理單元(TPU),可對各種事件進行快速智能處理;3.5KB靜態TPURAM;CAN控制模塊(TOUCAN),能方便地實現工業自動化等場合的局域網絡控制。

1.2 基本性能

(1)24位地址總線,16位數據總線,支持32位數據操作;

(2)2個8位雙功能I/O,1個7位雙功能I/O,16~44個模擬量輸入通道;

(3)具有系統保護邏輯,同時可進行時鐘監視和總線監視;

(4)速度快,在4.194MHz晶振下,系統時鐘可達20.97MHz;

(5)功耗低,具備低功率休眠功能;

(6)支持高級語言和背景調試。

2 基于MC68HC376的系統設計

2.1 片外Flash和RAM的擴展

MC68HC376有24位地址線和12位可編程的片選線。每根片選線可選通2KB~1MB的地址區,因此MC68HC376具有很強的擴展能力。注意:CS[6~10]與ADDR[19~23]復用。如何合理地安排這些線和片選線是系統優劣的關鍵。

本系統擴展了2片128KB的片外Flash 29C010A,2片128KB的片外RAM HM628128,擴展電路中圖1所示(其中的片選信號均采用10kΩ的上位電阻,圖1未畫出)。

值得注意的是:Flash和RAM均由A[1~17]尋址,實際上是一種字尋址方式,最低位A0不用。2片Flash和2片RAM的數字口分別接至MC68HC376的D[8~15]和D[0~7],對應字的高低字節。在程序中應注意存放高字節折芯片對應字的低字節地址。

2.2 系統功能選擇電路設計

與MCS-51和MCS-196系列單片機不同的是,MC68HC376復位時數據線狀態決定控制器某些相關的功能和操作模式。因此,根據實際系統的功能需要來選擇對應的復位狀態,是系統設計的一個重要環節。

所有數據線都有內部弱上拉電阻,復位時默認狀態為高,對應系統相應的默認功能;當需要利用其非默認功能時,需要強制電路使用應數據線在復位時電位為低。相應的模式選擇電路如圖2所示。

為了避免復位時MCU與外部讀寫器件沖突,引入DS和R/W為門控信號。這里,將SIM模塊構造兩個通用的并行I/O口,將DB8和DB9在復位時強制為低;而片選腳分別作為片選或者輸出口,所以DB[0~7保持默認狀態;因系統采用晶振作為外部參考頻率源,所以MODCLK腳也應保持默認狀態。

    2.3 時鐘部分的設計

2.3.1 系統時鐘的獲得

本系統采用晶振作為外部參考頻率源,電路和普通晶振電路一樣。但要注意確保MODCLK腳在復位時為高,否則系統會出錯。

本系統采用Motorola公司推薦的4.194MHz晶振頻率,同時通過寫時鐘合成控制寄存器SYNCR中的相關位來獲得一定的系統時鐘。系統時鐘頻率與SYNCR的W位、X位和Y[0~5]區的值有關:Fsys=Fref×[4(Y+1) ×2 (2W+X)]/128

當寫入W=1,X=0,Y=100111時,Fsys=5Fref=20.97MHz。(注意:不要超過MC68HC376系統頻率的最大允許值20.97MHz)。

2.3.2 外部濾波電路

由于采用外部參考頻率源,所以需要在XFC腳上接入濾波電路。應盡可能降低XFC腳的泄露電流,以提高時鐘的穩定性和內部鎖相環的性能。濾波電路如圖3所示。

2.4 輸入輸出通道

系統輸入輸出通道包括模塊量輸入、開關量輸入、鍵盤輸入、液晶顯示、控制量邏輯輸出等部分。為了減小干擾,開關量輸入采取光電隔離方式。運用MC68HC376的CTM4模塊測量頻率,由QADC模塊實現隊列式的模數轉換功能。

2.4.1 應用CTM4進行頻率測量

Motorola公司的CTM4模塊包括總線接口單元BIUSM、計數器分頻子模塊CPSM、1個16位自由計數器FCSM、2個16位可自動得裝載計數器MCSM、4個動作單元DASM、4個脈寬調節子模塊PWMSM。

CPSM通過對系統時鐘分頻向CTM4各個模塊提供6種不同的計數時鐘PCLK1~PCLK6。在運行CTM4各個單元之前,應先設置并啟動CPSM。注意,CPSM的構造值關系到實際測頻和測周結果的計算。

在實際測量中,為了提高測量精度,對于較高的頻率采用計數測頻法,外部信號經過濾波、過零比較后同時接入MC68HC376的CTM2C腳和CTD3腳,由軟件選擇判斷實際采用的方式。測頻子程序包括測頻部分(流程如圖4)和計數測頻部分(流程如圖5)。

(1)通過測周間接測頻

當待測頻率不高時,采用測周測頻方法。DASM單元的特點在于不需要軟件的干預而自動高速、精確地捕捉CTD3腳上兩個連續的上(下)跳沿,兩次捕捉的時間差即為待測信號的周期。

(2)通過計數器直接測頻

當待測頻率較高時,采用直接測頻方式。用CMSM2作定時器,利用FCSM12對CTM2C引腳的方波信號進行計數。

(3)應用CTM4測頻的幾個實際問題

應用CTM4測頻的程序結構并不復雜,但有幾個實際問題值得注意:

·啟動CTM4后,不應立即啟動CPSM產生時鐘,否則會因為程序在設置相應子單元時不同步而造成測量誤差。

·在完成一次測周后,一般應選擇模式0停止DASM;但注意在停止DASM時,實際對DASM還有一個復位動作,所以最好在關閉DASM前讀出捕捉寄存器A、B的值。而一般的定時計數器都是在停止后讀值。

·在使用計數測頻方式時,FCSMCNT在不溢出的狀態下最大可計量2 16Hz的頻率。這對更高頻率的測量是不夠的。設置一個溢出計數器N,在每次溢出中斷時加1計數,同時,因此CTM2C腳最大允許輸入為Fsys/4,所以在20.97MHz的系統頻率下,N使用8位計數器就可以滿足要求(FCSMCNT溢出中斷處理程序的流程圖略)。

·判斷是采用計數測頻還是測周測頻的頻率定值,應該以減少測量誤差為準則,需要對理論誤差進行計算,同時根據實際測量情況進行調整。

2.4.2 利用QADC模塊實現A/D轉換

QADC的主要功能模塊包括兩個隊列(QUEUE)、命令字(CCW)表、結果字表和一些相應的控制寄存器。QADC的最大特點是能夠通過寄存器和命令字組織待轉換的模擬量,使其按一定的隊列形式在一定條件下觸發轉換序列,并將結果按一定的格式存放于結果字表中。在實現A/D轉換時需要進行的工作如下:

(1)構造相關的管腳

QADC的管腳可作為模擬量I/O、數字量I/O或多路復用功能腳。在使用和相應管之前要先對其進行構造。本系統中16路模擬輸入口已經夠用,不需多路復用(可達44路),因此先對控制寄存器QACR0中的MUX位清零。相應管腳的引用名稱為AN[52~59]、AN[48~51]、AN[0~3]。最后在數據方向寄存器DDRQA中將相應位清零,即管腳設為輸入。

(2)構造隊列和命令字表

先通過控制寄存器QACR1和QACR2中的MQ1和MQ2區選擇隊列1和2工作方式。為減少軟件干涉、提高轉換程序效率,設置MQ1=MQ2=101,即軟件觸發的連續掃描方式。根據所測頻率經過軟件倍頻后可以很容易地對相關量進行跟蹤采樣,而不需要外部鎖相跟蹤電路。然后,按一定的順序和優先級來組織隊列。

由于沒有多路復用,這里用16個轉換命令字(CCW)分別控制16路輸入通道。在CCW中寫入通道號、采樣輸入時間選擇和放大模式選擇。轉換命令字表中最多可有40個CCW。

(3)構造中斷和結果讀取

在QADC結構寄存器QADCMCR中寫入中斷判決號,注意中斷判決號應該是非零且唯一的;寫隊列控制寄存器QACR1(2),設置中斷允許位CIE1、CIE2;寫QADC中斷寄存器,通過IRLQ1(2)區設置隊列1(2)的中斷優先級,通過IVB區提供QADC中斷向量號的高6位。

當隊列轉換完成后申請中斷,中斷服務程序從結果字表中讀取轉換結果。然后清除隊列狀態寄存器QASR中的中斷標志位CF1、CF2,準備下一輪隊列轉換。

2.5 通信口電路

本系統包括RS-232接口和CAN接口。RS-232接口通過隊列式串行模塊QSM和外部的MAX232芯片連接實現。CAN接口通過TouCAN模式與外部的CAN250芯片連接實現。

3 應用實例