arm單片機(jī)范文

時間:2023-04-09 11:57:51

導(dǎo)語:如何才能寫好一篇arm單片機(jī),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

關(guān)鍵詞:arm; LM3S811; 微控制器; TH12864; 液晶顯示; 驅(qū)動程序

中圖分類號:TN873.93; TP271文獻(xiàn)標(biāo)識碼:A文章編號:1004373X(2011)22006503

Design of Car Display System Based on ARM MCU

ZHANG Dong, QIN Changli, XIE Dadi, WU Xiaoru

(Collage of Physics and Electronic Information , Yan’an University, Yan’an 716000, China)

Abstract: In order to accomplish a design scheme of car display system, an implementation method of hardware and software is designed according to the main functions and characteristics of LCD module TH12864 and microprocessor LM3S811 in the series of ARMsR CortexTMM3 based 32bit microcontroller. The basic driver program are conveniently designed by using the Stellaris peripheral driver library function. The testing and verification results show that the functions of the driver program and display program are ideal. The hardware resources of microprocessor LM3S811 is rich and its software is easy to develop program. The developed display system can be conveniently transplant into other system.

Keywords: ARM; LM3S811; microcontroller; TH12864; LCD; driver program

收稿日期:201106160引言

8位的51單片機(jī)長期占據(jù)著微控制器(MCU)的主流市場,但隨著技術(shù)與需求的發(fā)展,32位微控制器應(yīng)用增長率也在不斷攀升。目前,基于ARM內(nèi)核的32位微處理器在市場上處于領(lǐng)導(dǎo)地位[12]。

基于ARM嵌入式處理器的片上系統(tǒng)解決方案可應(yīng)用于企業(yè)應(yīng)用、汽車系統(tǒng),家庭網(wǎng)絡(luò)和無線技術(shù)等市場領(lǐng)域。ARM CortexTM系列提供了一個標(biāo)準(zhǔn)的體系結(jié)構(gòu)來滿足以上各種技術(shù)的不同性能要求,基于ARM架構(gòu)有3個分工明確的系列:A系列面向復(fù)雜的尖端應(yīng)用程序,用于運行開放式的復(fù)雜操作系統(tǒng);R系列針對實時系統(tǒng);M系列專為低成本控制和微控制器應(yīng)用開發(fā)。CortexM3是基于ARM架構(gòu)的處理器,是專門為了在微控制器等對功耗和成本敏感的應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計的,它簡化了可編程的復(fù)雜性,使ARM架構(gòu)成為各種應(yīng)用方案的良好選擇[3]。

Luminary Micro公司(已被TI公司收購) Stellaris提供一系列的微控制器是首款基于ARMsR CortexTMM3的控制器,它們?yōu)閷Τ杀居绕涿舾械那度胧轿⒖刂破鲬?yīng)用方案帶來了高性能的32位運算能力。 這些具備領(lǐng)先技術(shù)的芯片使用戶能夠以傳統(tǒng)的8位和16位器件的價位來享受32位的性能。其中,LM3S811 微控制器正是針對工業(yè)應(yīng)用方案而設(shè)計的,包括測試和測量設(shè)備、工廠自動化、建筑控制、運動控制、醫(yī)療器械、火警安防以及電力能源等[4]。

TH12864等圖形點陣液晶顯示器以其工作電壓低、功耗低、壽命長、不產(chǎn)生電磁輻射污染、可以顯示復(fù)雜的文字及圖形等優(yōu)點, 已被廣泛應(yīng)用在各種儀器儀表、電子設(shè)備和家用電器等領(lǐng)域[57]。

本文嘗試將基于ARM的LM3S811 微控制器與TH12864顯示模塊相結(jié)合的技術(shù)應(yīng)用。

1系統(tǒng)硬件設(shè)計

1.1LM3S811主控芯片

本次系統(tǒng)硬件設(shè)計的主控芯片選擇TI公司LM3S811芯片[89],其電源電壓為3.3 V,最高時鐘頻率50 MHz,64 kHz的單周期FLASH;3個32位通用定時器,可分成6個16位定時器使用;一組同步串行接口(SSI),2個異步串行接口(UART);4通道模數(shù)轉(zhuǎn)換器(ADC),1組模擬比較器和I2C接口;3個脈寬調(diào)制信號(PWM)模塊,32個通用輸入輸出管腳(GPIO)及硬件看門狗等。LM3S811系統(tǒng)方框圖如圖1所示。

圖1LM3s811系統(tǒng)方框圖1.2TH12864顯示模塊

本次系統(tǒng)設(shè)計的顯示模塊選擇帶中文字庫的TH12864,其電源電壓為3.3 V。TH12864液晶顯示模塊是128×64點陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國標(biāo)GB2312碼簡體中文字庫(16×16點陣)、128個字符(8×16點陣)及64×256點陣顯示RAM(GDRAM)。可提供8位并行及串行2種連接方式,具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。 其中TH12864的管腳功能如下:

1:VSS,地(GND);2:VDD,電源;3:V0,背光調(diào)節(jié);4:CS,片選信號;5:STD,串行數(shù)據(jù);6:SCLK,串行時鐘;14: DB0DB7,并行數(shù)據(jù);15:PSB,串并口選擇,串行模式為低電平有效;17:/RST,復(fù)位;19:LEDA,背光正極;20:LEDK,背光負(fù)極[10]。

1.3LM3S811主控芯片與TH12864顯示模塊的連接

為節(jié)約系統(tǒng)硬件資源以便其他用途,故選擇TH12864顯示模塊為串行模式。則主控芯片LM3S811只需要占用3個GPIO管腳即可,保留PWM等用于小車驅(qū)動等,選擇與比較器和I2C復(fù)用的PB2,PB4和PB6,如圖2所示。

圖2LM3S811主控芯片與TH12864

顯示模塊的原理圖2系統(tǒng)軟件設(shè)計

系統(tǒng)軟件設(shè)計分為底層驅(qū)動程序、中層實現(xiàn)程序和上層應(yīng)用程序。軟件以IAR集成開發(fā)環(huán)境為開發(fā)平臺,用C語言編寫,便于維護(hù)和移植[1112]。下面是部分源程序。

2.1 底層驅(qū)動部分

底層驅(qū)動程序完成的功能是實現(xiàn)TH12864的硬件時序[10]。

圖3TH12864硬件串行時序圖程序如下:

void Send(uchar type,uchar transdata)

{

Pretreatment(type,transdata);

GPIOPinWrite(LCD_12864_PORT, LCD_12864_CS, 0xFF);

GPIOPinWrite(LCD_12864_PORT, LCD_12864_SCLK, 0x00);

for(j=3;j > 0;j勃)

{

for(i = 8;i > 0;i勃)

{

if(ucSndtmp[j] & 0x80)

{GPIOPinWrite(LCD_12864_PORT, LCD_12864_SID, 0xFF); }

else

{GPIOPinWrite(LCD_12864_PORT, LCD_12864_SID, 0x00); }

GPIOPinWrite(LCD_12864_PORT, LCD_12864_SCLK, 0xFF);

ucSndtmp [j]

GPIOPinWrite(LCD_12864_PORT, LCD_12864_SCLK, 0x00);

}

SysCtlDelay(600 * (TheSysClock/ 3000000));

}

GPIOPinWrite(LCD_12864_PORT, LCD_12864_SID, 0x00);

GPIOPinWrite(LCD_12864_PORT, LCD_12864_CS, 0x00);

}

驅(qū)動程序先預(yù)處理3個字節(jié)要發(fā)送數(shù)據(jù)的具體內(nèi)容,片選后,依次循環(huán),按時鐘信號發(fā)送每個字節(jié)的每一位,其中延時不能省略。

2.2中層實現(xiàn)程序

中層實現(xiàn)程序完成主要功能是,按照TH12864的用戶指令集,用底層驅(qū)動程序發(fā)送指令,完成初始化、顯示、清除、設(shè)定等功能。例如初始化程序:

void Ini_Lcd(void)

{

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

GPIOPinTypeOut(LCD_12864_PORT ,

LCD_12864_CS|LCD_12864_SID|LCD_12864_SCLK );

SysCtlDelay(100 * (TheSysClock/ 3000)); //延時約100 ms

Send(0,0x30);/*功能設(shè)置:一次送8位數(shù)據(jù),基本指令集*/

SysCtlDelay(72 * (TheSysClock/ 3000000)); //延時約72 μs

Send(0,0x02);/*DDRAM地址歸位*/

SysCtlDelay(72 * (TheSysClock/ 3000000)); //延時約72 μs

Send(0,0x0c);/*顯示設(shè)定:開顯示,不顯示光標(biāo),不

做當(dāng)前顯示位反白閃動*/

SysCtlDelay(72 * (TheSysClock/ 3000000)); //延時約72 μs

Send(0,0x01);/*清屏,將DDRAM的位址計數(shù)器調(diào)

整為“00H”*/

SysCtlDelay(72 * (TheSysClock/ 3000000)); //延時約72 μs

Send(0,0x06);/*功能設(shè)置,點設(shè)定:顯示字符/光標(biāo)

從左到右移位,DDRAM地址加1*/

SysCtlDelay(72 * (TheSysClock/ 3000000));//延時約72 μs

}

從前兩句可以看出LM3S811在設(shè)置GPIO時,比普通51單片機(jī)設(shè)置要簡單許多,無需記憶眾多的寄存器,由于廠家提供了Stellaris外設(shè)驅(qū)動庫函數(shù),只要調(diào)用相應(yīng)API接口函數(shù)即可,簡化了編程的復(fù)雜性,對于新學(xué)者也可以迅速上手編程工作。

2.3上層應(yīng)用程序

在底層驅(qū)動程序和中層實現(xiàn)程序的基礎(chǔ)上,程序移植方便??梢愿鶕?jù)系統(tǒng)需求完成字符、漢字和圖片等實際顯示內(nèi)容。

圖4實際顯示效果圖此次系統(tǒng)實現(xiàn)了開機(jī)圖片顯示,歡迎詞和小車狀態(tài)的循環(huán)動態(tài)顯示,速度顯示及電子秒表等功能。

3結(jié)語

通過本次系統(tǒng)集成的設(shè)計、制作、調(diào)試和驗證,完成并實現(xiàn)了基于ARM單片機(jī)的小車顯示系統(tǒng)功能。實現(xiàn)了LM3S811對于TH12864顯示模塊的控制,其底層驅(qū)動程序可以供大家參考。在實現(xiàn)過程中發(fā)現(xiàn),在硬件方面,LM3S811的主頻較高,運算能力較強(qiáng),外設(shè)資源豐富。在軟件方面,由于廠家提供了Stellaris外設(shè)驅(qū)動庫函數(shù),降低了編程的難度,可以快速上手工作。此外,本系統(tǒng)也可以推廣應(yīng)用到其他小型儀表或設(shè)備顯示系統(tǒng)。

參考文獻(xiàn)

[1]寧殿燕,張仲禮,王繼礦,等.基于ARM Cortex M3內(nèi)核礦井直流電法儀的研制[J].西安科技大學(xué)學(xué)報,2011(1):1115.

[2]崔琪琳,吳曉鳳.基于ARM的光源跟蹤系統(tǒng)的設(shè)計[J].電子測試,2011(2):6164.

[3]YIU Joseph.Cortex M3權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,2010.

[4]Texas Instruments. StellarissR LM3S811 Microcontroller [EB/OL]. [20110109]. /stellaris.

[5]倪景峰,周騰,馬恒.SMC12864液晶顯示器在密閉監(jiān)測系統(tǒng)中的應(yīng)用[J].測控技術(shù),2011,30(1):9799.

[6]辛阿阿,厲善亨.基于12864液晶模塊的動態(tài)波形顯示實現(xiàn)方法[J].儀器儀表用戶,2010,17(3):5657.

[7]宋穩(wěn)力,陳昌旺,黃文婷.液晶顯示模塊YG12864A的接口設(shè)計[J].現(xiàn)代顯示,2005(6):3537.

[8]黃爭.德州儀器高性能模擬器件在高校中的應(yīng)用及選型指南[M].上海:德州儀器半導(dǎo)體技術(shù)(上海)有限公司大學(xué)計劃部,2010.

[9]周立功.Cortex M3開發(fā)指南[M].廣州:廣州致遠(yuǎn)電子有限公司,2008.

[10]深圳彩晶科技.12864中文字庫液晶顯示模塊使用手冊[EB/OL].[20090815]..

[11]王道新,熊祖彪,陳競,等.基于IAR集成開發(fā)平臺的ARM程序設(shè)計方法[J].電子設(shè)計應(yīng)用,2005(10):102104.

篇2

關(guān)鍵詞:SDRAM;單片機(jī);MK60DN512ZVLQ10;存儲管理;控制程序

中圖文分類號:TP368

隨著集成電路技術(shù)與工藝的發(fā)展進(jìn)步,單片機(jī)應(yīng)用領(lǐng)域也逐漸擴(kuò)廣,進(jìn)入到社會生產(chǎn)生活的方方面面。在某些成本敏感的應(yīng)用場合迫切需要具有速度高、容量大的深度嵌入式系統(tǒng),技術(shù)的進(jìn)步,使得以低廉的價格獲得高性能,低功耗單片機(jī)成為可能。借助極高的接口速度,我們就可以使用普通GPIO口在沒有SDRAM控制器的廉價單片機(jī)上實現(xiàn)軟件驅(qū)動SDRAM。

1 硬件介紹

1.1 單片機(jī)

Kinetis系列是飛思卡爾(Freescale)公司于2010年下半年推出的業(yè)內(nèi)首款基于ARM Cortex.M4內(nèi)核的微控制器,K60系列是Kinetis系列的第一階段產(chǎn)品之一[1]。K60具有豐富的外設(shè)接口:(1)高速16位模數(shù)轉(zhuǎn)換器;(2)12位數(shù)模轉(zhuǎn)換器,帶有片上模擬電壓參考;(3)多個高速比較器和可編程增益放大器;(4)低功耗觸摸感應(yīng)功能,通過觸摸能將器件從低功耗狀態(tài)喚醒;(5)多個串行接口,包括UART;(6)強(qiáng)大靈活的定時器;(7)片外系統(tǒng)擴(kuò)展和數(shù)據(jù)存儲選項。

1.2 SDRAM

本文選用Hynix的H57V2562GTR-60C 256Mb SDRAM,其為4M x 4Bank x16bit組織結(jié)構(gòu)。操作SDRAM的主要命令[2]有:

MRS (Mode Register Set,模式寄存器設(shè)置),

NOP (No Operation,空操作),BA(Bank Active,存儲器激活),RD(Read,讀,可設(shè)置是否自動預(yù)充電),WR(Write,寫,可設(shè)置是否自動預(yù)充電),PB(Precharge Bank,預(yù)充電存儲器,可設(shè)置全部/選定Bank),BS(Burst stop,停止突發(fā)傳輸),DQM(DQM,數(shù)據(jù)掩碼),AR(Auto Refresh,自動刷新),BRSW(Burst-Read Single-Write,突發(fā)讀單一寫),SR(Self Refresh,自刷新,進(jìn)入/退出),PPD(Precharge Power Down,掉電預(yù)充電,可設(shè)置進(jìn)入/退出),CSS(Clock Suspend,時鐘掛起可設(shè)置進(jìn)入/退出)。

1.3 顯示器LCD及攝像頭Ov7725

本文選用2.4英寸240*320像素LCD作為顯示器,攝像頭采用Ov7725。

2 硬件連接

2.1 MCU與SDRAM接口

SDRAM需要一組16位寬的接口進(jìn)行數(shù)據(jù)傳輸,13位寬的接口進(jìn)行地址設(shè)定,兩根Bank選擇線,CS,CLK,CKE,WE,CAS,RAS,LDQM,UDQM各一根。K60的C口和E口均為完整16位口,可以用作地址線和數(shù)據(jù)線接口,剩余控制線使用單片機(jī)未用接口即可。

2.2 MCU與LCD接口

該LCD控制器一共需要13根控制線,其數(shù)據(jù)線需要一個完整的8位口,接在K60的口8至15位,剩余控制線使用單片機(jī)未用接口即可。

2.3 MCU與Ov7725接口

Ov7725[3]是一片CMOS的集成圖像傳感器,一共需要13根控制線,其數(shù)據(jù)線需要一個完整的8位口,接在K60的B口0至7位,剩余控制線使用單片機(jī)未用接口即可。

3 軟件設(shè)計

3.1 SDRAM底層驅(qū)動構(gòu)件

本層構(gòu)件的功能是以軟件方式實現(xiàn)基本的內(nèi)存命令,為上層軟件提供服務(wù)。主要函數(shù)原型和說明如下所述:

GPIO_Initial()初始化驅(qū)動SDRAM的GPIO口;MRS(u16 mode)設(shè)置模式寄存器,參數(shù)mode為模式寄存器控制字;BA(u8 bank,u16 addr)激活BANK,發(fā)送行地址,參數(shù)bakn為BANK編號,address為行地址;RD(u8 bank,u16 addr,u8 AutoPreCharge)讀取指定地址處數(shù)據(jù),參數(shù)bank為BANK編號,addr為列地址,AutoPreCharge表示是否自動預(yù)充電;WR(u8 bank,u16 addr,u8 AutoPreCharge)在指定地址處寫入,參數(shù)bank為BANK編號,addr為列地址,AutoPreCharge表示是否自動預(yù)充電;PBAll()給所有BANK預(yù)充電;PBOne(u8 bank)給選定BANK預(yù)充電,參數(shù)bank為BANK編號

AR()自動刷新;SREntry()自刷新進(jìn)入;SRExit()自刷新退出;NOP()空操作;CLK_Count(u16 total),參數(shù)total是向SDRAM傳送的有效時鐘數(shù);Initial()SDRAM初始化函數(shù);NOP_Read()空操作讀;NOP_Write()空操作寫;NOP_Burst()空操作突發(fā)讀寫。

其中,NOP_Write函數(shù)在給SDRAM產(chǎn)生有效時鐘信號的同時自動將緩沖區(qū)第一個字放到數(shù)據(jù)線上;NOP_Read函數(shù)在給SDRAM產(chǎn)生有效時鐘信號的同時自動將地址線上的一個字取回放到緩沖區(qū)。NOP_Burst函數(shù)根據(jù)突發(fā)讀寫標(biāo)識(Burst Flag),為1時,從緩沖區(qū)第二個字開始依次將余下的字放到地址線上,為0時,從地址線上取回指定字?jǐn)?shù)存放到緩沖區(qū)從第二個字開始處,并給SDRAM產(chǎn)生有效時鐘信號。其執(zhí)行方式如圖1所示。

3.2 SDRAM中間級基本讀寫功能構(gòu)件設(shè)計

本層構(gòu)件的功能是實現(xiàn)SDRAM單個字(WORD)讀寫,以及突發(fā)讀寫功能,能夠?qū)DRAM的物理地址轉(zhuǎn)換為線性邏輯地址,并完成定時自動刷新。為實現(xiàn)以上功能,定義一些全局變量,下面將說明。Buffer類型為unsigned short int*,長度16字節(jié),在內(nèi)存讀寫時作為數(shù)據(jù)交換區(qū)域。BurstFlag類型為Unsigned char,長度1字節(jié),其值0為突發(fā)讀,1為突發(fā)寫。BurstLength類型為Unsigned char,長度1字節(jié),指明突發(fā)長度。

首先為保持SDRAM內(nèi)數(shù)據(jù)不丟失,必須在64ms以內(nèi)進(jìn)行一次刷新操作。在K60的中斷定時器(PIT)中開啟一個周期中斷通道,設(shè)置其周期小于64ms即可,在其終端服務(wù)函數(shù)中調(diào)用自動刷新函數(shù)AR,然后再調(diào)用CLK_Count以產(chǎn)生數(shù)個自動刷新節(jié)拍,這樣自動刷新功能就完成了。

單個字讀、寫(函數(shù)名定義為Read_Word和Write_Word)實現(xiàn)過程類似。由于系統(tǒng)中存在周期中斷,并且該中斷同是對SDRAM進(jìn)行操作的,所以在進(jìn)行讀寫之前,必須先關(guān)閉周期中斷,以保證操作進(jìn)行的正確性。緊接著便可以執(zhí)行相應(yīng)讀取或?qū)懭氩僮鳌?/p>

當(dāng)為讀取操作時,先調(diào)用Bank激活命令BA同時傳入相應(yīng)Bank編號和行地址;然后調(diào)用CLK_Count,給SDRAM發(fā)送幾個有效時鐘,具體有效時鐘數(shù)量,視存儲器芯片和設(shè)定的RCD周期而定,完成行選通到列選通延遲;然后調(diào)用RD讀函數(shù),并傳入相應(yīng)的列地址;然后調(diào)用CLK_Count,給SDRAM發(fā)送幾個有效時鐘,具體有效時鐘數(shù)量,視存儲器芯片和CL周期而定,這段時間為讀取潛伏期;之后便可以調(diào)用NOP_Read,將數(shù)據(jù)線上的一個字取回緩沖區(qū),開啟周期中斷后就可以返回給主函數(shù)調(diào)用者了。

當(dāng)為寫入操作時,先從緩沖區(qū)取出欲寫入的一個字放到數(shù)據(jù)線上,然后調(diào)用Bank激活命令BA同時傳入相應(yīng)Bank編號和行地址;然后調(diào)用CLK_Count,給SDRAM發(fā)送幾個有效時鐘,具體有效時鐘數(shù)量,視存儲器芯片和設(shè)定的RCD周期而定,完成行選通到列選通延遲;然后調(diào)用WR讀函數(shù)。需要注意的是,這里與讀取操作不同,并不存在潛伏期,也就是說此時欲寫入的數(shù)據(jù)已經(jīng)在SDRAM里等待被寫入了,只需要短暫的寫回延時即可。為與讀操作函數(shù)對稱,使程序結(jié)構(gòu)易于被程序員讀懂,本文仍以NOP_Write函數(shù)形式實現(xiàn)寫回延時。至此寫入操作便完成,將周期中斷打開即可。圖2是單個字讀寫函數(shù)的流程圖,右為寫,左為讀。

對于突發(fā)讀和突發(fā)寫,只要在進(jìn)行讀寫前設(shè)置突發(fā)讀寫標(biāo)識BurstFlag為突發(fā)讀(值為0)、突發(fā)寫(值為1),將單個字讀寫函數(shù)中相應(yīng)的NOP_Read、NOP_Write更改為NOP_Burst,并計算好NOP_Burst的數(shù)量即可。

3.3 SDRAM內(nèi)存管理模型設(shè)計

本文使用鏈表式的內(nèi)存管理算法[4]來管理系統(tǒng)上掛載的容量為32M字節(jié)SDRAM存儲器。該SDRAM的組織結(jié)構(gòu)為4Bank×213行×29列×16位,因此本文將動態(tài)內(nèi)存塊大小設(shè)置為1K字節(jié),剛好是一行中所有存儲體的總?cè)萘?。這樣就32M字節(jié)存儲器將被劃分為131072個存儲塊。顯然即便是每個存儲塊只用一個字節(jié)記錄相關(guān)信息,對于單片機(jī)來說開銷也是巨大的,K60DN512單片機(jī)配備了128KB的SRAM,盡管在深度嵌入領(lǐng)域這個容量已經(jīng)相當(dāng)大,也是不夠用的。因此需要設(shè)計一種算法用來動態(tài)創(chuàng)建和刪除鏈表中的節(jié)點,控制鏈表中節(jié)點的數(shù)量,來完成SDRAM存儲管理。

每一個內(nèi)存(指系統(tǒng)掛載的SDRAM存儲器,下同)塊對應(yīng)一個節(jié)點,該節(jié)點的結(jié)構(gòu)定義如下:

typedef struct BlockNode

{ unsigned long int BlockAddr; unsigned char State;

struct BlockNode *left;

struct BlockNode *right;

} BNode, *pBNode;

BlockAddr存儲該內(nèi)存塊的首地址,State標(biāo)記該內(nèi)存塊是否被分配,值為0未被分配,其他值已被分配,left存儲左邊一個節(jié)點指針,right存儲右邊一個節(jié)點指針。

該結(jié)構(gòu)體占據(jù)13個字節(jié)存儲量,若在單片機(jī)上用13KB存儲器來存儲該鏈表則可以方便管理1MB的SDRAM存儲器,還是非常劃算的。

本文采用就大法分[5]配動態(tài)分配內(nèi)存塊。其算法流程圖3所示。

回收內(nèi)存的算法相對簡單,只需要根據(jù)需要回收的內(nèi)存塊首址刪除掉相應(yīng)節(jié)點即可。

3.4 系統(tǒng)整體設(shè)計

在完成了所有基本構(gòu)件的設(shè)計以后,便可以進(jìn)行系統(tǒng)整體設(shè)計了。這只需要調(diào)用基本構(gòu)件初始化函數(shù),按照一定時序建立服務(wù)函數(shù)即可,系統(tǒng)啟動流程如圖4所示。

4 系統(tǒng)性能測試

本文以多種方式測試了該系統(tǒng)對SDRAM讀寫數(shù)據(jù)的能力,測試結(jié)果如表1所示。

由實際測試數(shù)據(jù)可知,突發(fā)傳輸可得大大提高SDRAM的讀寫速度。

5 應(yīng)用舉例

在深度嵌入的單片機(jī)上實現(xiàn)高速圖像采集、存儲、處理、顯示是比較困難的,其原因在于MCU運算速度有限,存儲容量有限。該系統(tǒng)采用的K60單片機(jī)已經(jīng)具有DSP處理器,可以實現(xiàn)對大量數(shù)據(jù)的高速處理。

在場終端到來時設(shè)置行計數(shù)為0并打開場中斷,在行中斷到來時開啟DMA,跟隨PCLK時鐘采集640字節(jié)數(shù)據(jù),DMA操作結(jié)束后對行計數(shù)執(zhí)行加1操作,判斷行計數(shù)有沒有達(dá)到240,如果達(dá)到240,關(guān)閉行中斷并設(shè)置行計數(shù)為0,否則跳過此步驟繼續(xù)執(zhí)行將640字節(jié)數(shù)據(jù)存入SDRAM。在主函數(shù)中讀取SDRAM中存儲的數(shù)據(jù)發(fā)送到LCD上顯示便實現(xiàn)了動態(tài)顯示。主函數(shù)中也可以對SDRAM中存儲的數(shù)據(jù)進(jìn)行處理變換后再重組發(fā)送到顯示器或作他用。

6 結(jié)語

在深度嵌入的現(xiàn)代生活中,單片機(jī)的速度越來越快,人們對存儲容量的需求也越來越大,相對于花費大量資金購買一塊昂貴的帶有SDRAM控制器的MCU,本文介紹的GPIO口控制和管理SDRAM具有設(shè)備簡單,技術(shù)門檻低,開發(fā)周期短的優(yōu)點。系統(tǒng)有待改進(jìn)的地方在于可移植性不夠強(qiáng),通用性不夠好,從編程角度看,最基本的指針訪問內(nèi)存的方式必須以函數(shù)代替,這樣無法實現(xiàn)某些算法。該系統(tǒng)適合數(shù)據(jù)量大,對數(shù)據(jù)存取速度要求高,頻繁改寫數(shù)據(jù)的系統(tǒng),比如在圖像采集系、處理等系統(tǒng)。

參考文獻(xiàn):

[1]王宜懷,吳瑾,蔣銀珍.嵌入式系統(tǒng)原理與實踐[M].北京:電子工業(yè)出版社,2012:22-35.

[2]金新強(qiáng),白雪飛,張璠.一種DDRSDRAM控制器的設(shè)計[J].微型機(jī)與應(yīng)用,2013,32(8):23-25.

[3]任志敏.一種基于OV7725的圖像實時顯示系統(tǒng)設(shè)計[J].福建電腦.2013,29(1):128-130.

[4]張榮華,田澤,韓煒.基于鏈表的動態(tài)存儲器管理設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展.2011,21(7):250-253.

篇3

    書代號書 號書  名作  者定 價出版 日期內(nèi)容簡介頁 碼

    B17150715-9嵌入式系統(tǒng)設(shè)計與實踐張曉林估29.0預(yù)計2005.10

    B17210721-1嵌入式實時操作系統(tǒng)μC/OS-II原理及應(yīng)用任  哲22.02005.086

    B16530653-3ARM9嵌入式技術(shù)及Linux高級實踐教程陳  賾32.02005.076

    B16020602-9ARM嵌入式技術(shù)實踐教程   陳  賾29.02005.026

    B15770577-4ARM嵌入式系統(tǒng)基礎(chǔ)教程周立功32.02005.017

    B17290729-7ARM嵌入式系統(tǒng)實驗教程(二)周立功估29.02005.097

    B17260726-2ARM嵌入式系統(tǒng)實驗教程(三)周立功估29.0即將出板7

    ARM嵌入式系統(tǒng)實驗教程(三)--擴(kuò)展實驗周立功估29.0即將出板8

    B16480648-7嵌入式系統(tǒng)開發(fā)與應(yīng)用教程田  澤35.02005.038

    B14860486-7嵌入式系統(tǒng)開發(fā)與應(yīng)用實驗教程  (第2版) (含光盤)田  澤29.52005.048

    B15800580-4嵌入式實時操作系統(tǒng)及應(yīng)用開發(fā)羅  蕾34.02005.019

    B14800480-8嵌入式控制系統(tǒng)及其C/C++實現(xiàn) --面向使用MATLAB的軟件開發(fā)者  (含光盤)駱麗 譯32.02005.049

    二、 ARM、SoC設(shè)計、IC設(shè)計及其他嵌入式綜合類

    代書號書 號書  名作 者定 價出版 日期內(nèi)容簡介頁 碼

    源碼開放的嵌入式實時操作系統(tǒng)T-Kernel周立功 等譯估50.0預(yù)計2005.099

    B16300630-4嵌入式Ethernet和Internet通信設(shè)計技術(shù)駱麗 譯估28.0預(yù)計2005.1110

    B16290629-0嵌入式系統(tǒng)實時多線程--基于ThreadX和ARM張炯 譯估35.0預(yù)計2005.1110

    B17250725-4μC/OS ARM移植要點詳解黃燕平估32.0預(yù)計2005.1110

    B17190719-X從51到ARM--32位嵌入式系統(tǒng)入門趙星寒估38.0預(yù)計2005.1010

    B13590359-3嵌入式系統(tǒng)詞典馬廣云譯2005.0811

    B17100710-6ARM微控制器基礎(chǔ)與實戰(zhàn)  (第2版)周立功43.02005.0811

    B16740674-6ColdFire系列32位微處理器與嵌入式Linux應(yīng)用  (含光盤)李晶皎39.52005.0611

    B16730673-8深入淺出ARM7--LPC213x/214x(上)周立功45.02005.0711

    B16520652-5ARM嵌入式系統(tǒng)開發(fā)--軟件設(shè)計與優(yōu)化沈建華譯75.02005.0512

    B14300430-1MIPS處理器設(shè)計透視 (See MIPS Run)趙俊良譯55.02005.0612

    B16000600-2AT91系列ARM微控制器體系結(jié)構(gòu)與開發(fā)實例朱義君34.02005.0412

    B15410541-3嵌入式系統(tǒng)開發(fā)與應(yīng)用田  澤54.02005.0113

    B15830583-9ARM嵌入式系統(tǒng)軟件開發(fā)實例 (一)周立功56.02005.0113

    B15580558-8嵌入式系統(tǒng)設(shè)計與開發(fā)實例詳解 --基于ARM的應(yīng)用胥  靜43.02005.0113

    B15510551-0大型RISC處理器設(shè)計--用描述語言Verilog設(shè)計VLSI芯片   (含光盤)田澤 譯39.02005.0113

    三、 DSP

    代書號書 號書  名作 者定 價出版 日期內(nèi)容簡介頁 碼

    B17220722-X高性能工業(yè)控制DSP--ADSP 2199x原理及應(yīng)用  (含光盤)王曉明估39.02005.0914

    B15480548-0電機(jī)的DSP控制技術(shù)及其應(yīng)用謝寶昌39.02005.0314

    B16060606-1DSP技術(shù)原理及應(yīng)用教程劉艷萍26.02005.0314

    四、 單片機(jī)

    代書號書 號書  名作  者定 價出版 日期內(nèi)容簡介頁 碼

    4.1  選編及器件手冊

    B15420542-1單片機(jī)應(yīng)用技術(shù)選編 (11)   何立民69.02005.0915

    B17200720-3單片機(jī)外圍器件實用手冊 --數(shù)據(jù)傳輸接口器件分冊 (第2版)                                           鄔寬明估59.52005.0915

    B14650465-4單片機(jī)外圍器件實用手冊 --輸入通道器件分冊  (第2版)                                       紀(jì)宗南59.02005.0715

    4.2  PIC單片機(jī)

    B16540654-1高職高專通用教材--PIC單片機(jī)基礎(chǔ)教程丁躍軍22.02005.0715

    B15650565-0PIC18Fxxx單片機(jī)程序設(shè)計及應(yīng)用 (含光盤)劉和平29.02005.0316

    B15430543-XPIC單片機(jī)C語言開發(fā)入門 (含光盤)武  鋒29.02005.0216

    4.3  AVR單片機(jī)

    B17240724-6AVR單片機(jī)GCC程序設(shè)計  佟長福估28.02005.1016

    B15660566-9AVR單片機(jī)高級語言BASCOM程序設(shè)計與應(yīng)用張茂青22.02005.0116

    B15710571-5高檔8位單片機(jī)Atmega128原理與開發(fā)應(yīng)用指南(上)馬  潮34.02005.0117

    4.4  其他單片機(jī)圖書

    單片機(jī)初級教程--單片機(jī)基礎(chǔ)   (第2版)       張迎新預(yù)計2005.11

篇4

關(guān)鍵詞:單片機(jī);發(fā)展趨勢;電子技術(shù)

中圖分類號:TP368.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-7712 (2012) 14-0030-01

一、前言

單片機(jī)又被稱為微控制器,被廣泛地應(yīng)用到了工業(yè)控制領(lǐng)域上,對于電子技術(shù)的發(fā)展起到了極為重要的作用。雖然只是集中在一塊芯片上,但是單片機(jī)是一個完整的計算機(jī)系統(tǒng),具有定時器、通訊接口、外存、外部總線系統(tǒng)、中斷系統(tǒng)、內(nèi)部總線系統(tǒng)、內(nèi)存、CPU等,甚至還有些單片機(jī)還集成了網(wǎng)絡(luò)、圖像、聲音的輸出輸入系統(tǒng)。從最早的4位、8位單片機(jī)開始,目前已經(jīng)發(fā)展到32位300M的高速單片機(jī)[1]。

現(xiàn)代人們的生活中離不開單片機(jī)的身影,無論是機(jī)械產(chǎn)品,還是電子產(chǎn)品,幾乎都會集成有單片機(jī)。汽車配備40多部單片機(jī),而鼠標(biāo)、鍵盤、手機(jī)、掌上電腦、電子玩具、電話、家用電器、計算器等都配有1-2部單片機(jī),對于那些較為復(fù)雜的工業(yè)控制系統(tǒng)而言,甚至?xí)袛?shù)百臺、數(shù)千臺單片機(jī)在同時工作??梢赃@么說,單片機(jī)的數(shù)量甚至比人類的數(shù)量還要多[2]。

二、單片機(jī)在電子技術(shù)中的應(yīng)用范圍

(一)單片機(jī)在智能儀器儀表上的應(yīng)用

單片機(jī)以使用方便、擴(kuò)展靈活、微型化、體積小、可靠性高、速度快、控制功能強(qiáng)、集成度高等諸多優(yōu)點,也被廣泛應(yīng)用于智能儀器儀表領(lǐng)域。單片機(jī)的出現(xiàn)有效地促進(jìn)了儀器儀表向柔性化、智能化、綜合化、多功能化、數(shù)字化方面轉(zhuǎn)化,將過去傳統(tǒng)的控制儀器儀表、測量儀器儀表完全顛覆,由單片機(jī)構(gòu)成的智能儀表集控制、處理、測量等多種功能于一體,較過去的數(shù)字電路和電子電路而言,顯得更加的強(qiáng)大有用,給儀器儀表的發(fā)展打下了堅實的基礎(chǔ)。例如,東芝首款基于ARM Cortex(TM)-M0內(nèi)核的單片機(jī)TMPM061FWFG,通過內(nèi)置高精度AD轉(zhuǎn)換器優(yōu)化了智能電表性能,這是一款全新的32位RISC微控制器,這款全新的TMPM061FWFG是東芝公司首款Cortex?-M0器件,專為智能電表而設(shè)計。它為智能電表的設(shè)計提供了單芯片解決方案,它整合了高精度24-位Delta-Sigma AD轉(zhuǎn)換器,一個功率計算引擎及內(nèi)置了其它特殊功能IP。ARM Cortex?-M0是ARM公司推出的最小型處理器,它具有非常小的芯片面積、極低功耗、最少代碼量的特點,但它的制造成本卻與傳統(tǒng)的8位或16位MCU相同。ARM公司具有大量的應(yīng)用軟件和統(tǒng)一的開發(fā)環(huán)境,這也有助于節(jié)省開發(fā)成本,內(nèi)置了一個非常精確的實時時鐘,該時鐘可通過其內(nèi)置溫度傳感器調(diào)節(jié)溫度補償,調(diào)節(jié)精度可達(dá)0.5ppm 。采用3個高精度24-位Delta-Sigma AD轉(zhuǎn)換器可同時測量交流電源的電流和電壓。

(二)單片機(jī)在工業(yè)控制中的應(yīng)用

由于單片機(jī)可以構(gòu)成形式多樣、各具特色的數(shù)據(jù)采集系統(tǒng)和控制系統(tǒng),故其被廣泛應(yīng)用于工業(yè)控制領(lǐng)域,例如各種報警系統(tǒng)控制、電梯智能化的控制、自動化儀表控制、安全閥控制、自動化流水線的智能化管理等。

(三)單片機(jī)在家用電器中的應(yīng)用

單片機(jī)目前已經(jīng)被大量應(yīng)用于家用電器的市場開拓和更新中。如根據(jù)對象的情景模式、周圍環(huán)境來將光圈速度進(jìn)行自動調(diào)節(jié)的攝像機(jī)和照相機(jī) ;可以根據(jù)食物種類來選擇加熱時間、加熱溫度的微波爐; 可以自動選擇冷藏時間、冷藏溫度,有效識別食物保鮮程度、食物種類的冰箱;可以根據(jù)臟物程度、衣物種類來自動選擇洗滌強(qiáng)度、洗滌時間的洗衣機(jī);由單片機(jī)控制的高級電視游戲機(jī)、電子玩具等。與此同時,隨著單片機(jī)的技術(shù)不斷成熟和發(fā)展,家用電器的性能價格都得到了很大的提高[3]。

(四)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用

隨著人們生活水平的快速提高,人民對于醫(yī)療衛(wèi)生和自身健康的關(guān)注度也日益增加,醫(yī)療設(shè)備滅菌消毒就顯得尤為重要,但是一些小診所、小醫(yī)院的自動化的程度太低,消毒滅菌設(shè)備極為簡陋,很難有效控制消毒滅菌的質(zhì)量。而單片機(jī)由于使用方便、擴(kuò)展靈活、功能強(qiáng)、體積小的特點,正在逐漸地在醫(yī)用設(shè)備領(lǐng)域得到了大量的應(yīng)用,如病床呼叫系統(tǒng)、監(jiān)護(hù)儀、超聲診斷設(shè)備、分析儀、醫(yī)用呼吸機(jī)等等。

(五)單片機(jī)在汽車電子領(lǐng)域中的應(yīng)用

汽車電子中應(yīng)用到單片機(jī)的地方非常廣泛,例如胎壓檢測、制動系統(tǒng)、abs防抱死系統(tǒng)、GPS導(dǎo)航系統(tǒng)、發(fā)動機(jī)智能電子控制器等。例如豐田汽車?yán)脝纹瑱C(jī)來進(jìn)行雷達(dá)探測行人、障礙物,系統(tǒng)通過剎車和方向控制車體。在遇到緊急剎車也難以避開行人或障礙物時,自動控制系統(tǒng)可改變車體方向,從而避開沖撞。

三、單片機(jī)的發(fā)展趨勢

(一)微型單片化

目前所用的單片機(jī)都將時鐘電路、定時電路、中斷系統(tǒng)、串行通信接口、并行通信接口、中央處理器(CPU)、只讀程序存儲器(ROM)、隨機(jī)存取數(shù)據(jù)存儲(RAM)集成在一塊芯片上,而單片機(jī)的發(fā)展趨勢正朝著微型化的方向發(fā)展,具有的功能更加強(qiáng)大,所包含的單元電路更加多,甚至還包括了LCD(液晶)驅(qū)動電路、WDT(看門狗)、PMW(脈寬調(diào)制電路)、A/D轉(zhuǎn)換器等,另外,功耗還更低、重量更輕、體積更小。

(二)低功耗CMOS化

我們目前所大量使用的單片機(jī)功耗大概都在100 MW左右,而最早的單片機(jī)功耗大概在630 MW左右。而且單片機(jī)的發(fā)展趨勢是朝著低功耗的方向大力發(fā)展。目前互補金屬氧化物半導(dǎo)體工藝就是一種有效地減少單片機(jī)功耗的工藝技術(shù),更加適合于要求低功耗如電池供電的應(yīng)用場合。

參考文獻(xiàn):

[1]吳巖.單片機(jī)在電子技術(shù)中的應(yīng)用和開發(fā)技術(shù)研究[J].黑龍江科技信息.2011(09):112-115.

篇5

【關(guān)鍵詞】Proteus;單片機(jī);仿真;ARM7

ARM處理器是一種低功耗高性能的32位RISC處理器,ARM處理器是一個綜合體,ARM公司自身并不制造微處理器,而是同ARM的合作伙伴來制造,作為SOC(System On Chip)的典型應(yīng)用,目前,基于ARM的處理器以其高速度、低功耗等諸多優(yōu)異的性能而得到非常廣泛的應(yīng)用。

1.ARM7處理器特性及其應(yīng)用領(lǐng)域

ARM7系列微處理器為低功耗的32位RISC處理器,最適合用于對價位和功耗要求較高的消費類應(yīng)用。ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域:

(1)工業(yè)控制領(lǐng)域

作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM微控制器的低功耗、高性價比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn);

(2)無線通訊領(lǐng)域

目前已有超過85%的無線通訊設(shè)備采用了ARM技術(shù),ARM以其高性能和低成本,在該領(lǐng)域的地位日益鞏固;

(3)網(wǎng)絡(luò)應(yīng)用

隨著寬帶技術(shù)的推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競爭優(yōu)勢。此外,ARM在語音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn);

(4)消費類電子產(chǎn)品

ARM技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用;

(5)成像和安全產(chǎn)品

現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分采用ARM技術(shù)。手機(jī)中的32位SIM智能卡也采用了ARM技術(shù)[2]。

2.Proteus和NXP LPC2106簡介

2.1 Proteus軟件簡介

Proteus是英國Lab-center Electronics公司開發(fā)的電子電路實物仿真軟件,它是完整的嵌入式系統(tǒng)軟、硬件設(shè)計仿真平臺,包括原理圖輸入系統(tǒng)ISIS、帶擴(kuò)展的ProSpice混合模型仿真器、動態(tài)器件庫、高級圖形分析模塊和處理器虛擬系統(tǒng)仿真模型VSM(Virtual Simulation Model)。

Proteus可以實現(xiàn)模擬電路、數(shù)字電路、微控制器系統(tǒng)電路以及混合電路系統(tǒng)的電路仿真、軟件仿真,系統(tǒng)協(xié)同仿真和PCB設(shè)計等功能。Proteus支持主流單片機(jī)系統(tǒng)與各種常見的芯片的仿真,目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、LPC21xx系列、PIC16系列等。本文提出的虛擬ARM實驗平臺采用NXP公司的LPC2106作為核心部件[3]。

2.2 NXP LPC2106簡介

LPC2106是Philips公司推出的一款基于ARM7TDMI-S的32位微控制器,帶有128KB的片內(nèi)高速Flash存儲器和64KB的片內(nèi)SRAM,與片內(nèi)存儲器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線(VPB)。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘頻率下運行。LPC2106具有非常小的尺寸和極低的功耗,因此它們非常適合于那些小型化作為主要需求的應(yīng)用,帶有寬范圍的串行通信接口(雙UART、SPI、IIC),由于片內(nèi)SRAM具有大的緩沖區(qū)規(guī)模和強(qiáng)大的處理能力,而多個32位定時器、PWM輸出和32個GPIO使它們特別適用于工業(yè)控制和醫(yī)療系統(tǒng)[4]。

3.Protues下ARM7的典型實驗

3.1 外部中斷實驗

LPC2106具有17個中斷通道,可將它們設(shè)置為FIQ、向量IRQ和非向量IRQ,通過編程不同設(shè)的向量IRQ中斷優(yōu)先級,可以實現(xiàn)動態(tài)調(diào)整。FIQ中斷優(yōu)先級最高,向量IRQ具有中等優(yōu)先級,非向量IRQ的優(yōu)先級最低。

實驗任務(wù):

結(jié)合相關(guān)寄存器的使用方法、VIC基本操作步驟和LPC2106外部中斷寄存器,使用外部中斷0和中斷1控制8位流水燈流動方向。當(dāng)KEY0按下時,D0~D7閃爍3次,由D0向D7流動。當(dāng)KEY1按下時,D0~D7閃爍3次,由D7向D0流動。

3.2 矩陣鍵盤實驗

判斷鍵盤中有無鍵按下:將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵褲按下,而且閉合的鍵位于低電平線與行線相交叉的按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。

判斷閉合鍵所在位置:在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是依次將行線置為低電平,即在某根行線為低電平時,其他線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉外的按鍵就是閉合的按鍵。

實驗任務(wù):

根據(jù)矩陣鍵盤掃描原理,設(shè)計4×4鍵盤,使用中斷方式讀取,并用2位數(shù)碼管顯示鍵值。

4.結(jié)束語

通過本文的介紹,我們知道Proteus是一種混合電路仿真工具,既可以仿真模擬電路又可以仿真數(shù)字電路以及數(shù)字、模擬混合電路??梢苑抡娓鞣N電路和集成IC,支持多種型號單片機(jī),元件庫齊全,使用方便。充分體現(xiàn)了使用用Proteus做單片機(jī)仿真實驗的諸多優(yōu)點,譬如速度快,程序修改、編譯后馬上就可以看到效果,不需要拔片、寫片、插片這些過程,提高實驗效率;方便直觀形象,硬件電路隨時可以進(jìn)行更改,教學(xué)演示非常容易;不受時間和空間的限制,可自主設(shè)計和驗證方案,有利于系統(tǒng)、科學(xué)、有效地培養(yǎng)科研工作者的專業(yè)實踐能力[5,6]。

參考文獻(xiàn)

[1]朱清慧,張風(fēng)蕊.Proteus教程:電子線路設(shè)計、制版與仿真[M].清華大學(xué)出版社,2008.

[2]陳家義.基于Proteus的ARM虛擬實驗平臺[J].學(xué)周刊,2011(10).

[3]楊增汪,戴新宇,李貴明.基于Proteus的嵌入式系統(tǒng)虛擬開發(fā)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2010(03).

[4]孫立香.Proteus和Keil軟件在單片機(jī)中的應(yīng)用[J].科技資訊,2009(36).

[5]金輝,董全成,馮安.PROTEUS在實驗教學(xué)中的應(yīng)用分析[J].科技信息,2009(24).

篇6

關(guān)鍵詞:日立SH3; SH3單片機(jī); 單片機(jī)最小系統(tǒng); 32位處理器

中圖分類號:TN91934文獻(xiàn)標(biāo)識碼:A文章編號:1004373X(2012)06001504

Establishment for least system of Hitachi SH3 MCU

GUO Deqiang1, ZHANG Huapeng2

(1. Henan Ureika Systems Engineering Ltd, Zhengzhou 450001, China;

2. Luoyang Institute of Science and Technology, Luoyang 471023, China)

Abstract: In order to give the relevant Chinese engineers another choice and make them to master the Hitachi SH3 series processor to empolder some applied products when ARM processors have been almost monopolized the Chinese market of 32bit processors, the least system of Hitachi SH3 series MCU was built by means of HD6417708S MCU in Hitachi SH3 series, and the serial communication experiment was conducted by utilizing a serial port module of MCU. The experiment achieved the anticipated result. It shows that the least sysem of Hitachi SH3 seres MCUs works normally and is reliable.

Keywords: Hitachi SH3; SH3 MCU; least system of MCU; 32bit processor

收稿日期:201109210引言

SH系列是日本日立公司推出的32位高檔的、RISC型單片機(jī)系列,到現(xiàn)在為止,已經(jīng)推出了6種類型的單片機(jī)系列:基本型的SH1,改進(jìn)型的SH2,低功耗的SH3,增強(qiáng)型的SH4,以及和DSP結(jié)合的SH2DSP和SH3DSP。

SH3系列是低功耗型SH處理器,高性能RISC結(jié)構(gòu),在時鐘133 MHz時,性能可以達(dá)到173 MIPS。在2.25 V工作時,功耗為400 mW。SH3的SH7709,其消耗功率每瓦運行的指令數(shù)達(dá)到315 MIPS,能源利用效率很高。它內(nèi)部集成了32位乘法器、4路8 KB CHACHE、存儲器管理單元MMU、一些通用內(nèi)部控制模塊和外部接口模塊。其性能可以與ARM公司的ARM9系列處理器相媲美,在世界的嵌入式領(lǐng)域占有很大的份額,但是由于SH3系列單片機(jī)在國內(nèi)可參考的資料有限,技術(shù)支持不到位等種種原因致使ARM系列幾乎獨霸國內(nèi)32位處理器市場。SH3系列處理器無法在國內(nèi)發(fā)揮它強(qiáng)大的功能。本文介紹了如何用HD6417708S 型號SH3單片機(jī)從硬件到軟件從無到有建立起SH3系列單片機(jī)最小系統(tǒng),并用系統(tǒng)的串口模塊來驗證系統(tǒng)能否正常運行。有了這個最小系統(tǒng)平臺開發(fā)人員只要在系統(tǒng)中添加自己需要的功能模塊就可以開發(fā)出需要的產(chǎn)品,在ARM一通天下的形勢下給國人增加一個選擇方向,同時對于嵌入式領(lǐng)域正從零開始研究某款處理器的開發(fā)人員也有一定的借鑒之處。

1最小系統(tǒng)的整體介紹

用HD6417708S 型號SH3單片機(jī)建立的最小系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。此最小系統(tǒng)包括MCU(HD6417708S)、電源模塊、存儲器模塊、MCU輔助電路,為了可以直觀地看到系統(tǒng)能夠正常運行增加了串口通信模塊用于演示。

圖1最小系統(tǒng)的結(jié)構(gòu)框圖2硬件平臺的搭建

2.1電源模塊

“HD6417708S”單片機(jī)理想的工作電壓是3.3 V, 上下可以有0.3 V的波動,存儲器與串口芯片都支持3.3 V供電。在此的電源模塊是以DCDC開關(guān)電源芯片“1CZ21H”為核心的一個單片開關(guān)電源電路,DC8VDC28V輸入,3.3 V供電時可以提供1.5 A的電流,電路原理如圖2所示。

圖2電路原理圖2.2串口通信模塊[1]

該模塊分別用到MD2/RXD(84管腳),MD1/TXD(85管腳),MD0/SCK(86管腳)3個管腳,并且

他們都屬于功能復(fù)用管腳。當(dāng)3個管腳作為MD0,MD1,MD2功能管腳時為模式選擇控制管腳,復(fù)位時它們的狀態(tài)決定了時鐘電路的設(shè)置,對應(yīng)關(guān)系可參考參考文獻(xiàn)\[1\]。

系統(tǒng)正常運行以后時鐘模式控制功能已經(jīng)完成了,如果系統(tǒng)要用串口功能時就可以用 RXD(84管腳)、TXD(84管腳)進(jìn)行全雙工通信。現(xiàn)在問題是硬件怎么設(shè)計能同時滿足這2種功能。在此提供2種方案:

方案1:串口芯片使用MAX3223芯片,這款芯片有功能使能管腳,如果芯片沒有使能時芯片管腳處于高阻狀態(tài)。提供的方案框圖如圖片3所示:當(dāng)系統(tǒng)復(fù)位時讓MAX3223處 于不使能狀態(tài),MAX3223的RXD、TXD引腳處于高阻狀態(tài),添加輔助電路就可以隨心所欲的給SH7708單片機(jī)提供模式控制信號了。當(dāng)系統(tǒng)運行起來時SH7708肯定會通過 Area0的片選信號CS0訪問Area0區(qū)的ROM,所以CS0是否出現(xiàn)低脈沖可以作為系統(tǒng)是否已經(jīng)運行的標(biāo)志信號,將CS0信號送給模式控制輔助電路,一旦檢測到CS0低脈沖就讓模式控制輔助電路輸出變?yōu)楦咦锠顟B(tài),同時使能MAX3223芯片就可以了。模式控制圖3中方案1模塊用一個組合邏輯門和一個觸發(fā)器就可以實現(xiàn)功能。

方案2: 采用CPLD將單片機(jī)和串口芯片隔開。這樣就可以隨心所欲地控制了,具體方案如圖4:由于在系統(tǒng)中還用到了CPLD的其他資源,所以選擇了這種方案。如果系統(tǒng)沒有在其他功能中用到CPLD的話建議用方案1,因為方案1成本會低很多。

2.3存儲器模塊[1]

SH3單片機(jī)內(nèi)部沒有ROM空間,系統(tǒng)必須在外部總線上連接ROM存儲器。SH3單片機(jī)總線采用地址總線與數(shù)據(jù)總線分離的設(shè)計模式,地址總線最大支持64 MB存儲空間。滿足這種總線模式的ROM都可以使用(SH3單片機(jī)內(nèi)部沒有NAND FLASH控制器,所以不要選擇NAND FLASH存儲器)。由于一條指令占16 b空間,所以選一片 8 MB 16位位寬的 FLASH存儲器 LH28F640BFN。

SH3系列處理器內(nèi)部嵌有8 KB CACHE,在不使用緩存功能時有 4 KB CACHE空間可以當(dāng)作一般的RAM使用。由于本次只是討論最小系統(tǒng)的建立,程序比較簡單,4 KB空間足以。在后續(xù)介紹比較大的運用時會介紹系統(tǒng)連接的SDRAM存儲器,在以后其他文章中討論。

圖3方案框圖(一)圖4方案框圖(二)2.4MCU輔助電路[1]

(1) 復(fù)位電路:HD6417708S單片機(jī)需要最短為10 ms的低電平復(fù)位信號,如果你的系統(tǒng)中其他芯片也需要Reset信號時請綜合考慮一下復(fù)位信號的長度與電平。本系統(tǒng)的復(fù)位電路采用了一款集復(fù)位與看門狗電路于一身的“1075”復(fù)位芯片。

(2) 時鐘電路:HD6417708S單片機(jī)的時鐘模塊有2個管腳:EXTAL(79)和XTAL(80)。如果想用無源晶振的話將晶振連到EXTAL和XTAL之間,兩管腳對地各接一個18 pF的電容就可以了。如果想用有緣晶振的話將晶振的時鐘輸出管腳接EXTAL管腳就行了。

(3) PLL模塊輔助電路:HD6417708S單片機(jī)鎖相環(huán)電路要求在管腳74,管腳77分別對地接一個470 pF的電容。

(4) 幾個特殊管腳的處理管腳87為 Bus requst輸入功能管腳,如果系統(tǒng)正常運行時給這個管腳加一個低電平信號,單片機(jī)會釋放總線。如果您的系統(tǒng)有多個處理器需要共用總線時通過對這個管腳的合理控制可以實現(xiàn)總線分配,如果系統(tǒng)不用單片機(jī)釋放總線時就可以給這個管腳加一個10 kΩ的上拉電阻,這個管腳一定不要懸空。

管腳89~管腳93為外部中斷輸入管腳。管腳89為管腳NMI(非屏蔽中斷),為邊沿觸發(fā)中斷。

管腳90~管腳93為可屏蔽中斷管腳,為電平觸發(fā)中斷。這些管腳都不能懸空,如果沒有用到要將這些管腳各加上10 kΩ的上拉電阻就可以了。

管腳94是一個PCMCIA總線控制的管腳如果沒用到這種存儲器的話就可以加上10 kΩ的上拉阻就行了,不會影響其他部分。

MD3(管腳103)、MD4(管腳104)、MD5(管腳130)是3個模式控制引腳。MD3,MD4控制著Area0的總線寬度,對應(yīng)關(guān)系請參考參考文獻(xiàn)\[1\]。

MD5復(fù)位時的狀態(tài)告訴單片機(jī)總線上的存儲器中數(shù)據(jù)(包括code和data)的存儲方式,復(fù)位時MD5為零時說明存儲器中的數(shù)據(jù)是按大端模式存放的,復(fù)位時存儲器中的數(shù)據(jù)應(yīng)選擇小端模式。

wait(管腳132)是一個等待請求管腳,低電平有效。當(dāng)處理器的訪問速度超過外部設(shè)備的反應(yīng)速度時可以將這個管腳置低讓處理器進(jìn)行等待。如果系統(tǒng)的外部設(shè)備足夠快不用這個功能的話要加一個弱上拉電阻,絕對不能懸空或接地。自此,帶監(jiān)視串口的HD6417708S單片機(jī)最小系統(tǒng)硬件平臺就搭建好了,編寫相關(guān)軟件就可以讓系統(tǒng)運行起來。

3軟件平臺的搭建

SH3系列單片機(jī)的開發(fā)環(huán)境是由日本瑞薩公司專門提供的“Highperformance Embedded Workshop” [2]軟件,有很多版本,在瑞薩公司的網(wǎng)站上可以下載,我下的是“shv9200_ev.exe”版本。

首先安裝HD6417708S單片機(jī)的開發(fā)工具“Highperformance Embedded Workshop”軟件,安裝完成以后會在程序目錄里出現(xiàn)一個“Renesas”安裝程序,里面的“Highperformance Embedded Workshop”圖標(biāo)就是開發(fā)軟件的圖標(biāo)。

建立模板工程。雙擊開發(fā)工具圖標(biāo)出現(xiàn)一個工程對話框,選擇第一項“Create a new project workspace”,然后點擊OK按鈕進(jìn)入 “NewProjectWorkspace對話框。在“Workspace Name”對話框里為項目命一個名字,例如“123”,系統(tǒng)會把“ProjectName”與“Directory”項的名字都默認(rèn)為“123”,如果想指定工程的保存路徑的話就點擊“Browse”按鈕選擇想保存程序的地方,其他選項用默認(rèn)選項就可以了,點擊“確定”按鈕進(jìn)入下一個對話框。在“CPUSerise” 選擇框里選擇“SH3”選項,在“CPUType” 選擇框里選擇“SH7708”選項,然后點擊“Next”按鈕進(jìn)入下一個對話框界面。將“Endian”選項設(shè)為“Little”模式,這個選項很重要,前面“MCU輔助電路”部分介紹的MD5管腳就是用來設(shè)置程序存儲大小端模式的,如果MD5管腳設(shè)置的大小端與軟件設(shè)置的不一樣整個程序就亂了。因為硬件將MD5管腳設(shè)置成了小端模式的狀態(tài)所以在此將“Endian”選項設(shè)為“Little”模式。其他選項用默認(rèn)值就行了,然后點擊“Next”按鈕進(jìn)到下一個對話框界面。在對話框的最下面的“Generate Hardware Setup Function”的下拉菜單中選擇“C/C++ source file”選項, 然后連續(xù)點擊“Next”按鈕直到出現(xiàn)“Targets”選項界面,將“SH3 Simulator(Little endian)”選項選上,然后連續(xù)點擊“Next”按 鈕直到圖標(biāo)變灰,再點擊“Finish”按鈕就進(jìn)入到工程的主界面了,模板工程就建立完成了。

模板工程相關(guān)文件介紹[1]。由于建立的是一個模板工程,工程建立好以后就帶了一些文件包括啟動代碼、異常處理程序以及為軟件開發(fā)人員提供的程序接口等等?,F(xiàn)將幾個關(guān)鍵文件功能按照程序執(zhí)行順序介紹如下:

首先在程序目錄里點擊“handle.src”文件,找到段標(biāo)志“.sectionRSTHandler,code”,該段的程序代碼就是單片機(jī)上電復(fù)位后首先執(zhí)行的代碼。然后點擊“resetprg.c”文件,里面有一個“void PowerON_Reset(void)”函數(shù),單片機(jī)執(zhí)行完“handle.src”文件中的“.section RSTHandler,code”段的程序代碼后跳到了該函數(shù)運行,如果想知道為什么跳到了這個函數(shù)請計算出“ .section RSTHandler,code”程序段中的“JMP”指令要跳轉(zhuǎn)的地址以及“void PowerON_Reset(void)”所分配地址會發(fā)現(xiàn)兩個地址對應(yīng)同一個存儲單元。在“void PowerON_Reset(void)”函數(shù)中調(diào)用的“set_vbr((void*)((_UINT)INTHandlerPRG INT_OFFSET))”函數(shù),“_INITSCT()”和“_INIT_IOLIB()”都是系統(tǒng)庫函數(shù),在編譯器手冊中它們的功能都有介紹,在此不詳細(xì)介紹。

點擊“hwsetup.c”文件就可以看到“void PowerON_Reset(void)”函數(shù)中調(diào)用的HardwareSetup()函數(shù)的具體內(nèi)容,本函數(shù)是用來初始化單片機(jī)總線及各個功能模塊的。set_cr(SR_Init)函數(shù)是用來初始化狀態(tài)寄存器的一個系統(tǒng)函數(shù),與中斷的設(shè)置關(guān)系較大,對于本系統(tǒng)意義不大,本著簡化系統(tǒng)的原則將這個函數(shù)注掉。然后就到“main()”函數(shù)了,點擊“123.c”文件發(fā)現(xiàn)“main()”函數(shù)是一個空函數(shù),這是系統(tǒng)為程序員提供的接口,在這個函數(shù)里添加您的程序代碼就行了。至此模板工程里的相關(guān)文件就介紹完了。系統(tǒng)上電,單片機(jī)運行完模板自帶的初始化程序以后就跳到了“main()”函數(shù),程序員只要在此函數(shù)中添加需要的功能代碼就可以實現(xiàn)所需要的功能了。

串口監(jiān)視程序的實為了驗證系統(tǒng)真的運行起來了,硬件上增加了串口監(jiān)視模塊。

在此來實現(xiàn)下面這個簡單功能:將串口波特率初始化為9 600 b/s,通過串口接收一個字節(jié)的數(shù)據(jù)并通過串口發(fā)送出去。通過這個簡單的功能驗證系統(tǒng)工作正常。程序流程圖如圖5所示。編譯應(yīng)用程序,最終生成摩托羅拉格式的機(jī)器碼,將有用的數(shù)據(jù)解析出來燒到系統(tǒng)的ROM中系統(tǒng)就可以上電演示了。

圖5串口監(jiān)視程序流程圖系統(tǒng)測試。將本系統(tǒng)與電腦通過串口線連接起來,電腦運行串口軟件發(fā)送字節(jié)“0xaa”給系統(tǒng)板,電腦串口軟件的接收區(qū)出現(xiàn)“aa”,如圖6所示:通過現(xiàn)象可以說明系統(tǒng)正常運行了。自此,HD6417708S單片機(jī)最小系統(tǒng)從無到有就算建立成功了。本系統(tǒng)詳細(xì)闡述了SH3系列單片機(jī)開發(fā)應(yīng)用時可能出現(xiàn)問題的解決方法,并用串口實驗驗證了最小系統(tǒng)的正確性。此最小系統(tǒng)基本將SH3處理器與其他處理器的不同之處都展現(xiàn)出來了,在此基礎(chǔ)上開發(fā)人員只要運用單片機(jī)開發(fā)的共性理論就可以很好地使用SH3單片機(jī),大大縮短開發(fā)周期,降低開發(fā)難度。同時也為ARM一統(tǒng)天下的國內(nèi)工程師提供了如圖6上位機(jī)串口監(jiān)視軟件發(fā)送和接收的數(shù)據(jù)更新的選擇方向。

圖6上位機(jī)串口監(jiān)視軟件發(fā)送和接收4結(jié)語

本最小系統(tǒng)已經(jīng)在工業(yè)產(chǎn)品中的到應(yīng)用,實踐證明,該最小系統(tǒng)運行穩(wěn)定,能很好地完成產(chǎn)品指標(biāo)。

參考文獻(xiàn)

[1]Hitachi Ltd. SH7708 series hardware manual \[M\]. \[S.l.\]: Hitachi Ltd., 2000.

[2]瑞薩科技.SuperHTM RISC engine C/C++編譯程序、匯編程序、優(yōu)化連接編輯程序編譯程序包V.9.01 用戶手冊\[M\].北京:瑞薩科技,2007.

[3]宋,高偉強(qiáng),閻秋生.基于DSPTMS320C6713控制系統(tǒng)的最小系統(tǒng)板的設(shè)計\[J\].現(xiàn)代電子技術(shù),2008,31(8):4143.

[4]李彬,王朝陽,卜濤,等.基于MSP430F149的最小系統(tǒng)設(shè)計\[J\].國外電子測量技術(shù),2009,28(12):4143.

篇7

【關(guān)鍵詞】51單片機(jī) 語音播放系統(tǒng)

1 各種語音播放系統(tǒng)的對比和分析

如表1所示。從表1不難看出,采用ST C12+FLASH存貯芯片的方案在無論在成本及靈活性方面都具備很好的優(yōu)勢。

2 STC12系列增強(qiáng)型51單片機(jī)播放系統(tǒng)的硬件構(gòu)成

如圖1。本系統(tǒng)的MCU采用了宏晶公司的STC125404芯片,它的P3.7具有PWM功能,因此連接到功放電路LM4890上。語音的存貯芯片采用了旺宏(MXIC)公司的MX25xxx08系列串行NOR Flash芯片,如果采用一片16Mbyte容量的芯片,存放8KHZ、8bit采樣頻率的語音文件(即8000字節(jié)/秒),按以下計算公式:

16*1024K/8K=2097(秒)

也就是可以播放時長大約為2097秒的語音文件。

語音數(shù)據(jù)是將音頻wav文件的頭信息去掉之后提取出來的,然后按應(yīng)用的需要,分段燒錄到Flash的固定位置,將語音的存放位置和長度記錄下來,以供播放程序調(diào)用。

3 STC12系列增強(qiáng)型51單片機(jī)播放系統(tǒng)的軟件構(gòu)成

PWM產(chǎn)生聲音的原理是:調(diào)節(jié)PWM的輸出脈沖的占空比來產(chǎn)生不同幅度的電壓,這個幅值就接近于語音的聲波。如圖2所示聲音的波形圖。

而PWM輸出頻率越高,產(chǎn)生的音波幅值就越精確。STC12系列增強(qiáng)型51單片機(jī)因為具有1T的機(jī)器周期,它的時鐘頻率是傳統(tǒng)的12T 的51單片機(jī)的12倍,因此它的PWM輸出頻率最高(以11.0592M的晶振頻率計算)可以達(dá)到11059200/256=43200HZ。這個頻率已經(jīng)接近44.1kHz 的CD音質(zhì)了,因此用它來播放語音文件,聲音效果也十分理想。

軟件設(shè)計工具采用Keil C51,語音播放主要用到單片機(jī)的兩個定時器。一個定時器用來產(chǎn)生8KHz的采樣頻率,本設(shè)計中采用T1定時器的8位定時器中斷功能,定時125us;另一個定時器用來產(chǎn)生PWM波形,本設(shè)計中采用T0定時器8位定時/計數(shù)器功能。設(shè)置好這兩個定時器的功能是程序開發(fā)的關(guān)鍵所在。

下面給出設(shè)置PWM寄存器的關(guān)鍵代碼:

/*設(shè)置STC12單片機(jī)的PWM功能*/

void Pca_Initialize(void)

{

CMOD = 0x04; //Setup PCA timer

CL = 0x00;

CH = 0x00;

CCAP0L = 0x7F; //Set the initial value same as CCAP0H

CCAP0H = 0x7F;

CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PMW mode

PCA_PWM0=0x00;

}

/*兩個關(guān)鍵定時器的功能設(shè)置*/

void Soundinit()

{

Pca_Initialize();

AUXR =(AUXR|0xbf);

TR0=0;

TR1=0;

TMOD = 0x22;

TH1=0x8c;

TL1=0x8c; //1/8000hz=125us,就是125US一個采樣點,以11.0592M的晶振計算

TH0=0xff; //TL0=0xff; 定時器0的溢出率是PWM的時鐘源。

TR0 = 1;

TR1 = 1;

ET1 = 1;

CR = 1;

PT1=1;

PT0=0;

EA = 1;

}

/*每隔125us送一個新的采樣數(shù)據(jù)給PWM的寄存器*/

void timer1() interrupt 3

{

CCAP0H =SoundData[jx];

CCAP0L =SoundData[jx];

}

4 總結(jié)

現(xiàn)在越來越多的消費電子產(chǎn)品中需要增加語音報話功能,利用STC12系統(tǒng)單片機(jī)的PWM功能,可以以極低成本實現(xiàn)上述功能,電路設(shè)計簡單,語音更改靈活。并且這種語音播放技術(shù)可以很容易的推廣到其它具有PWM功能的單片機(jī)或者ARM芯片上,具有很長久和廣泛的應(yīng)用前景,因此是一項值得學(xué)習(xí)推廣的技術(shù)。

作者簡介

姜燕頻(1977-),女,上海市人。大學(xué)本科學(xué)歷,中級工程師。主要研究方向為嵌入式開發(fā),單片機(jī)C51、ARM開發(fā)、linux驅(qū)動開發(fā)、linux系統(tǒng)移植。

篇8

關(guān)鍵詞: 邊界層; MSP430F149單片機(jī); DC/DC; 功耗

中圖分類號: TN964?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)06?0136?03

0 引 言

深海海底原位監(jiān)測技術(shù)是一種對海底界面生物地球化學(xué)過程進(jìn)行長期、原位、多參數(shù)同步測量的水下監(jiān)測技術(shù)。該技術(shù)在海底水合物系統(tǒng)及其勘探試采過程中的環(huán)境效應(yīng)監(jiān)測評估等方面有重要的應(yīng)用前景。

因系統(tǒng)在深海海底長期使用且更換電池不方便,故電源管理系統(tǒng)的主要功能是使其工作時電流消耗盡可能的小、不工作時電源可以被切斷,以及采集模擬量。單片機(jī)在不斷電的情況下,實現(xiàn)長期控制整個電源系統(tǒng)的功能。由于海底原位監(jiān)測工作具有長期性的特點,要求系統(tǒng)具有較高的穩(wěn)定性和較低的功耗。

1 電源管理系統(tǒng)結(jié)構(gòu)和總設(shè)計方案

本電源系統(tǒng)以MSP430F149為主控制器件,是一款16位超低功耗的單片機(jī),其CPU功耗可以通過開關(guān)狀態(tài)寄存器的控制位來控制:正常運行時電流160 μA,備用時為0.1 μA,低功耗的優(yōu)點為系統(tǒng)設(shè)計提供了有利條件;內(nèi)部集成了8路12位具有高速、通用特點的ADC12模塊,可在沒有CPU干預(yù)的情況下進(jìn)行16次獨立采樣并保存結(jié)果[1],系統(tǒng)中用到2路模擬通道來分別采集模擬量DO和PH;其所有的I/O端口的管腳都是雙向的[2],設(shè)置I/O口可控制DC/DC模塊,圖1中C1~C6為單片機(jī)I/O口輸出的DC/DC模塊的Ctrl信號,即通過I/O口輸出1或者0控制DC/DC模塊的開啟或關(guān)斷。

2 電源管理系統(tǒng)軟件設(shè)計

整個系統(tǒng)的管理主要分為3個階段:甲板上設(shè)置參數(shù)階段、設(shè)備投放階段、數(shù)據(jù)采集階段。甲板上設(shè)置參數(shù)階段主要是對單片機(jī)進(jìn)行對時、設(shè)置投放階段睡眠的時間長度以及數(shù)據(jù)采集周期。設(shè)備投放階段主要是控制上位機(jī)和深海設(shè)備處于斷電狀態(tài)并且單片機(jī)進(jìn)入低功耗狀態(tài),等待先前設(shè)置的投放階段睡眠的時間長度到了之后退出低功耗,給上位機(jī)供電,然后等待上位機(jī)的命令。數(shù)據(jù)采集階段主要是周期性的給上位機(jī)供電,上位機(jī)給單片機(jī)命令給相應(yīng)的深海設(shè)備供電或斷電。系統(tǒng)的設(shè)計中涉及到功耗、時鐘切換、RTC等,以下是各個部分的具體實現(xiàn)過程。

2.1 低功耗設(shè)計

系統(tǒng)的功耗可以由公式P=CV2f計算出來[3],式中C為負(fù)載電容,V為電源電壓,f為系統(tǒng)工作頻率,可見一個系統(tǒng)的功耗主要由電源電壓決定,其次是工作頻率、負(fù)載電容。因負(fù)載電容不可控制,要設(shè)計一個低功耗的系統(tǒng),在不影響其性能的前提下,應(yīng)該盡可能地降低電源電壓和使用低頻率的時鐘。

電源電壓方面,一方面MSP430F149具有1.8~3.6 V的低電源電壓工作范圍;另一方面,系統(tǒng)中使用的DC/DC模塊為程序可控的,即只有在要求給相應(yīng)的負(fù)載供電時,才會程序控制相應(yīng)的DC/DC模塊開啟,否則其一直處于關(guān)斷狀態(tài)。從以上2個方面,降低了整個系統(tǒng)電源電壓以降低整個系統(tǒng)的功耗。

另外,MSP430F149具有1種活動模式和5種低功耗模式(LPM0?LPM4)[4],通過程序控制可使單片機(jī)在指定的時刻通過定時器中斷退出低功耗模式進(jìn)入活動模式,其他時刻均處于LPM3模式下。因系統(tǒng)中用定時器B實現(xiàn)軟時鐘,定時器B的時鐘源選擇的是ACLK,LPM4模式下CPU及所有的時鐘(包括ACLK)都停止工作,但是系統(tǒng)要求軟時鐘即使在低功耗的狀態(tài)下可用且可中斷喚醒CPU,故選擇的是LPM3模式。

系統(tǒng)設(shè)計中有兩路模擬量采集用到ADC模塊,此模塊僅在單片機(jī)接收到上位機(jī)發(fā)送來的采集這兩路模擬量的時候才開啟,采集完之后可通過程序控制把ADC模塊關(guān)閉,在一定程度上這也可以降低系統(tǒng)功耗[5]。

2.2 時鐘切換設(shè)計

由2.1知,從低功耗的角度出發(fā),選擇了較低的工作頻率,但是系統(tǒng)中涉及到單片機(jī)控制步進(jìn)電機(jī)。MCLK為32 768 Hz時,由此時鐘延時產(chǎn)生的矩形脈沖的頻率太低,導(dǎo)致步進(jìn)電機(jī)不能轉(zhuǎn)動,所以在系統(tǒng)中考慮到時鐘的切換,即在調(diào)整步進(jìn)電機(jī)時,要把單片機(jī)的主系統(tǒng)時鐘(MCLK)從LFXT1切換到LFXT2。BCSCTL2|=SELM1+SELM0該語句實現(xiàn)的是選擇MCLK的時鐘源為LFXT1,即設(shè)置了BCSCTL2寄存器的高兩位為1(默認(rèn)為0)。當(dāng)要把MCLK的時鐘源選擇為LFXT2時,如果寄存器BCSCTL2的各個位仍為默認(rèn)值,則只需BCSCTL2|=SELM1語句便可成功的設(shè)置MCLK的時鐘源為LFXT2[6],但是程序沒能達(dá)到預(yù)期目標(biāo)。分析發(fā)現(xiàn)寄存器BCSCTL2被設(shè)置過之后,被設(shè)置的相應(yīng)位的默認(rèn)值就發(fā)生了改變,在進(jìn)行下一次設(shè)置之前要保證把上一次設(shè)置過的相應(yīng)位恢復(fù)為默認(rèn)值,然后再進(jìn)行設(shè)置才能達(dá)到預(yù)期目標(biāo),意思就是說在語句BCSCTL2|=SELM1前面加上語句BCSCTL2&=0X3F即可成功的將MCLK的時鐘源由LFXT1切換到LFXT2。

2.3 實時時鐘RTC的設(shè)計

一方面,系統(tǒng)長期工作于深海海底,甲板上設(shè)置好參數(shù)后,從投放到回收期間,不會再有外部工作人員的干預(yù),系統(tǒng)自動化的完成數(shù)據(jù)的采集工作,對電源管理系統(tǒng)提出了能夠按點、按周期周期性給嵌入式系統(tǒng)和深海設(shè)備加電的要求;另一方面,深海海底原位監(jiān)測的DO,PH,CO2,CH4等要在嚴(yán)格的準(zhǔn)同步下測得,才具有研究的意義和價值。以上兩方面要求電源管理系統(tǒng)要有RTC,能夠接受上位機(jī)發(fā)送來的時間,并以此時間為基準(zhǔn)開始計時。程序能記錄上次數(shù)據(jù)采集的時刻,并計算出下次數(shù)據(jù)采集的時刻。每次數(shù)據(jù)采集完單片機(jī)關(guān)閉電源,進(jìn)入LPM3模式,等待到下一個數(shù)據(jù)采集時刻從低功耗狀態(tài)退出然后給上位機(jī)供電,然后等待上位機(jī)命令給哪些深海設(shè)備供電與斷電。

2.4 系統(tǒng)的健壯性

系統(tǒng)從硬件和軟件2個方面來保證系統(tǒng)運行的穩(wěn)定性。

(2)核對工作狀態(tài):ARM板相對于單片機(jī)有3個階段,且其信息斷電不丟失,而單片機(jī)一旦出現(xiàn)意外斷電,其信息將全部丟失,程序被重新初始化,就會出現(xiàn)單片機(jī)和ARM板的工作狀態(tài)不一致。為了消除因兩者工作狀態(tài)不一致給整個系統(tǒng)帶來的風(fēng)險,程序中設(shè)置了接收上位機(jī)核對工作狀態(tài)的命令,單片機(jī)一旦發(fā)現(xiàn)兩者工作狀態(tài)不一致,將修改自己的狀態(tài),以與ARM板保持同步。系統(tǒng)流程圖如圖3所示。

3 結(jié) 語

通過2次海試,結(jié)果表明系統(tǒng)可以穩(wěn)定地實時給上位機(jī)供電,系統(tǒng)功耗低,程序結(jié)構(gòu)靈活穩(wěn)定,修改方便,能夠滿足深海原位監(jiān)測的要求。

參考文獻(xiàn)

[1] 謝興紅.MSP430單片機(jī)基礎(chǔ)與實踐[M].北京:北京航空航天大學(xué)出版社,2008.

[2] 秦龍.MSP430單片機(jī)常用模塊與綜合系統(tǒng)實例精講[M].北京:電子工業(yè)出版社,2007.

[3] 胡淑軍.嵌入式系統(tǒng)低功耗技術(shù)研究[EB/OL].[2007?07?23].中國科技論文在線,http://.

[4] 張晞,王德銀,張晨.MSP430系列實用C語言程序設(shè)計[M].北京:人民郵電出版社,2005.

篇9

關(guān)鍵詞:步進(jìn)電機(jī); 伺服系統(tǒng); ARM; 閉環(huán)控制

中圖分類號:TN820.334文獻(xiàn)標(biāo)識碼:A文章編號:1004373X(2011)23012102

Design of Tracking Servo System of Stepper Motor

XI Xiaopeng, FENG Liqiang

(Satellite Application System Department, China Academy of Space Technology, Beijing 100086, China)

Abstract: As an excellent numerical component, stepper motor is easy to achieve numerical control. MCU has well digital interface. The control system composed of MCU and stepper motor is simple and costeffective. A kind of antenna servo system of stepper motor based on ARM control is introduced, which adopted AzimuthElevation type, based on stepper motor and used digital PID closedloop control. The servo system verifies that the design can meet the original requirement and has excellent precision and stability.

Keywords: stepper motor; servo system; ARM; closedloop control

收稿日期:201106210引言

步進(jìn)電機(jī)是純粹的數(shù)字控制電機(jī)。它將電脈沖信號轉(zhuǎn)變成角位移,即給一個脈沖信號,步進(jìn)電機(jī)就轉(zhuǎn)動一步。在額定功率范圍內(nèi),電機(jī)的轉(zhuǎn)速只取決于脈沖的頻率和脈沖數(shù),而不受負(fù)載變化的影響,因此非常適合于數(shù)字化控制,尤其是與數(shù)字設(shè)備配套使用時,體現(xiàn)了更大的優(yōu)越性?,F(xiàn)代單片機(jī)具有充足的I/O口、多路PWM通道和豐富的外部接口,使其特別適用于電機(jī)的控制。

本文以ARM單片機(jī)作為控制核心,以步進(jìn)電機(jī)作為驅(qū)動元件,設(shè)計了一種基于ARM的步進(jìn)電機(jī)伺服系統(tǒng)。該伺服系統(tǒng)用于近程無人機(jī)測控系統(tǒng)中,伺服系統(tǒng)驅(qū)動定向天線轉(zhuǎn)動,完成天線對目標(biāo)無人機(jī)的實時跟蹤,保證測控鏈路的順暢建立。

1步進(jìn)電機(jī)及其驅(qū)動控制技術(shù)

步進(jìn)電機(jī)是根據(jù)組合電磁鐵理論設(shè)計的,電動機(jī)的設(shè)計是以精確的定位作為主要目標(biāo),堵轉(zhuǎn)轉(zhuǎn)矩大、定位精度高。步進(jìn)電機(jī)可分為反應(yīng)式、永磁式和混合式三種,混合式步進(jìn)電機(jī)綜合了反應(yīng)式和永磁式兩者的優(yōu)點,因此被廣泛使用。

步進(jìn)電機(jī)的工作原理使之非常適合于單片機(jī)的控制。雖然步進(jìn)電機(jī)是一種數(shù)字控制元件,易于與數(shù)字電路接口。但是,一般數(shù)字電路的信號能量不足以驅(qū)動步進(jìn)電機(jī)。因此,必須有一個與之匹配的驅(qū)動電路來驅(qū)動步進(jìn)電機(jī)。對步進(jìn)電機(jī)的驅(qū)動電路有如下要求:

(1) 能夠提供快速上升和快速下降的電流,使電流波形盡量接近矩形;

(2) 具有供截至期間釋放電流的回路,以降低相繞組兩端的反電勢,加快電流衰減;

(3) 功耗低,效率高。

常用的步進(jìn)電機(jī)驅(qū)動電路有單電壓驅(qū)動、雙電壓驅(qū)動、高低壓驅(qū)動、斬波恒流驅(qū)動和細(xì)分驅(qū)動等。以上驅(qū)動電路各有優(yōu)缺點,其性能比較見表1。

另外,要使步進(jìn)電機(jī)正常工作,必須按照該種電機(jī)的勵磁狀態(tài)轉(zhuǎn)換表所規(guī)定的狀態(tài)和順序依次對各相繞組進(jìn)行通電或斷電控制。步進(jìn)電機(jī)的驅(qū)動電路根據(jù)控制信號工作,在步進(jìn)電機(jī)的單片機(jī)控制中,控制信號由單片機(jī)產(chǎn)生,其基本控制作用如下:

(1) 控制換相順序。步進(jìn)電機(jī)的通電換相順序嚴(yán)格按照步進(jìn)電機(jī)的工作方式進(jìn)行。

(2) 控制步進(jìn)電機(jī)的轉(zhuǎn)向。如果按照給定的工作方式正序通電換相,步進(jìn)電機(jī)就正轉(zhuǎn);如果按照反序通電換相,則電機(jī)就反轉(zhuǎn)。

(3) 控制步進(jìn)電機(jī)的速度。如果給步進(jìn)電機(jī)發(fā)一個控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個脈沖,它會再轉(zhuǎn)一步。兩個脈沖的間隔時間越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。因此,脈沖的頻率決定了步進(jìn)電機(jī)的轉(zhuǎn)速。調(diào)整單片機(jī)發(fā)出脈沖的頻率,就可以對步進(jìn)電機(jī)速度進(jìn)行調(diào)整。

表1常用步進(jìn)電機(jī)驅(qū)動電路性能比較

驅(qū)動電路啟動頻率運行頻率運行平穩(wěn)性效率成本單電壓低低較差低低雙電壓低較高較差較高高高低壓高較高差較高較高斬波恒流高高差高高細(xì)分高高好高高

2伺服系統(tǒng)設(shè)計方案

2.1總體結(jié)構(gòu)

該伺服系統(tǒng)采用方位俯仰型結(jié)構(gòu),以方位轉(zhuǎn)臺為底座,上面安裝俯仰傳動機(jī)構(gòu),控制天線轉(zhuǎn)動,完成天線對目標(biāo)無人機(jī)的跟蹤。方位可以在±540°范圍之間運轉(zhuǎn),俯仰可以在-30°~+90°之間旋轉(zhuǎn)。方位和俯仰分別以步進(jìn)電機(jī)作為驅(qū)動元件,以光電編碼器作為反饋元件,完成伺服系統(tǒng)的閉環(huán)控制。

另外,設(shè)計時為了完成方位±540°轉(zhuǎn)動范圍要求,專門設(shè)計了電纜纏繞裝置,以解決方位轉(zhuǎn)動過程中電纜的纏繞問題。

天線伺服系統(tǒng)總體結(jié)構(gòu)如圖1所示。

圖1天線伺服系統(tǒng)總體結(jié)構(gòu)圖根據(jù)圖1總體結(jié)構(gòu)和系統(tǒng)布局,分別對方位和俯仰傳動力矩進(jìn)行了計算。在此選用MOTEC公司SM242系列兩相混合式步進(jìn)電機(jī)作為驅(qū)動元件,并選用諧波齒輪減速機(jī)完成速度和力矩的轉(zhuǎn)換,諧波齒輪減速機(jī)減速比為65。同時,采用瑞普公司JSP3806系列光電編碼器作為位置檢測元件實現(xiàn)位置反饋。伺服系統(tǒng)原理框圖如圖2所示。

2.2伺服系統(tǒng)硬件設(shè)計

對于伺服控制系統(tǒng)而言,目前常用的硬件方案有以DSP組成的伺服控制器和以MCU組成的伺服控制器。以DSP組成的伺服控制器具有控制精度高、響應(yīng)速度快等優(yōu)點,但其成本較高,不適用于低成本場合;而以MCU為控制器構(gòu)成的系統(tǒng)具有結(jié)構(gòu)簡單、適應(yīng)性強(qiáng)、成本低等優(yōu)點被廣泛使用。該系統(tǒng)以ARM單片機(jī)為核心構(gòu)成伺服控制器,伺服控制器硬件原理框圖如圖3所示。

圖2天線伺服系統(tǒng)原理框圖圖3伺服控制器原理框圖由圖3可以看出,伺服控制器是伺服系統(tǒng)的控制中心,步進(jìn)電機(jī)控制信號的產(chǎn)生、光電編碼器角度信息的采集、位置信息的比較運算等都在伺服控制單元內(nèi)完成。該系統(tǒng)伺服控制單元采用PHILIPS公司的LPC2294單片機(jī)擴(kuò)展而成,完成伺服系統(tǒng)的各種運算與控制。

2.3伺服控制軟件設(shè)計

針對該系統(tǒng)的特點,伺服控制軟件主要完成以下功能:

(1) 接收監(jiān)控計算機(jī)的控制指令,并分解指令完成伺服系統(tǒng)的控制;

(2) 產(chǎn)生符合頻率要求的步進(jìn)脈沖和轉(zhuǎn)向脈沖,實現(xiàn)方位和俯仰電機(jī)的控制;

(3) 實時采集光電編碼器角度信息,完成位置控制;

(4)實時將天線的指向位置、伺服系統(tǒng)的工作狀態(tài)等信息上報給飛控計算機(jī);

(5) 分別進(jìn)行方位與俯仰的限位檢測,并進(jìn)行軟件限位,防止設(shè)備破壞;

(6) 完成無人機(jī)測控系統(tǒng)所要求的數(shù)字引導(dǎo)、自跟蹤等其他功能。

根據(jù)上述主要功能,將控制軟件劃分為相應(yīng)的功能

模塊,采用C語言編寫控制程序,完成伺服控制軟件的設(shè)計。

另外,對于步進(jìn)電機(jī)控制來說,一般應(yīng)用較多的是采用PID或PI控制算法。針對該系統(tǒng)的特點,由于天線的運行速度較低,為了充分利用單片機(jī)有限的資源,提高運算效率,采用簡單易行的數(shù)字PID算法進(jìn)行電機(jī)的控制。

3結(jié)語

本文以某無人機(jī)測控系統(tǒng)地面跟蹤伺服設(shè)備的研制為背景,從工程實際出發(fā),設(shè)計了一種基于ARM的步進(jìn)電機(jī)天線伺服系統(tǒng)。目前,該伺服系統(tǒng)已完成工程樣機(jī)的研制,并進(jìn)行了相關(guān)試驗。試驗結(jié)果表明,該伺服系統(tǒng)滿足最初的設(shè)計要求,具有一定的工程實際意義,可以用于無人機(jī)和其他測控系統(tǒng)中天線的驅(qū)動與跟蹤。

參考文獻(xiàn)

[1]王曉明.電動機(jī)的單片機(jī)控制[M].北京:北京航空航天大學(xué)出版社,2007.

[2]潘健,劉夢薇.步進(jìn)電機(jī)控制策略研究[J].現(xiàn)代電子技術(shù),2009,32(15):143145.

[3]王雁平.步進(jìn)電機(jī)定位控制系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2010,33(18):205207.

[4]高鐘毓.機(jī)電控制工程[M].北京:清華大學(xué)出版社,2002.

[5]劉佐興,郭華民,程顯海.一種高精度天線伺服系統(tǒng)[J].微計算機(jī)信息,2009,25(7):6466.

[6]杜永龍,黃惠東,康興國,等.改善步進(jìn)電機(jī)低頻特性的續(xù)流回路方法[J].探測與控制學(xué)報,2009(5):6063.

[7]李自成,程善美.基于DSP交流伺服系統(tǒng)與CAN總線的通信設(shè)計\[J\].現(xiàn)代電子技術(shù),2009,32(1):145147.

篇10

關(guān)鍵詞:溫濕度;STM32;USB;傳感器;Si7005;CP2102

引言

隨著物聯(lián)網(wǎng)的發(fā)展,傳感器技術(shù)應(yīng)用領(lǐng)域越來越廣泛。傳感器技術(shù)已成為衡量一個國家科學(xué)技術(shù)發(fā)展水平的重要標(biāo)志之一。為了提高對溫濕度傳感器的深入研究,基于物聯(lián)網(wǎng)技術(shù)設(shè)計了本裝置。

1 系統(tǒng)原理及組成框圖

本裝置主要由USB接口轉(zhuǎn)換器、STM32F103單片機(jī)、Si7005溫濕度傳感器幾部分組成。它的USB接口可以方便地和上位機(jī)或其他物聯(lián)網(wǎng)系統(tǒng)相連接組成物聯(lián)網(wǎng)的組件。如圖1所示。

2 單片機(jī)的選型和電路設(shè)計

單片機(jī)是本裝置的核心部件,一方面它要和溫濕度傳感器進(jìn)行通信,獲取實時的溫濕度數(shù)據(jù),另一方面它還要通過串口和CP2102進(jìn)行通信,將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)或物聯(lián)網(wǎng)系統(tǒng)。我們選用的STM32F103單片機(jī)是一款專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計的ARM Cortex-M3內(nèi)核單片機(jī),具有性能高、外設(shè)豐富、超強(qiáng)抗干擾等優(yōu)點,是目前同類技術(shù)中性價比較高的產(chǎn)品。其電路設(shè)計如圖2。

3 USB接口電路設(shè)計

USB接口芯片我們選用CP2102,其集成度高,內(nèi)置USB2.0全速功能控制器、USB收發(fā)器、晶體振蕩器、EEPROM及異步串行數(shù)據(jù)總線(UART),支持調(diào)制解調(diào)器全功能信號,無需任何外部的USB器件。內(nèi)含時鐘電路,無需外接電路器,內(nèi)含上電復(fù)位電路,片內(nèi)電壓調(diào)節(jié)可輸出3.3V電壓。其電路設(shè)計如圖3。

4 溫濕度傳感器及其電路設(shè)計

溫濕度傳感器我們采用美國SILABS的Si7005,它是一個將濕度和溫度傳感器元件、一個模擬-數(shù)字轉(zhuǎn)換器和信號處理功能集成到單片集成的CMOS傳感器IC。溫度傳感器和濕度傳感器都經(jīng)過工廠校準(zhǔn)并且校準(zhǔn)數(shù)據(jù)存儲在片上非易失性存儲器中。精度高、性能穩(wěn)定、采用I2C通信接口,寬工作電壓范圍(2.1-3.6V)。其電路設(shè)計如圖4。

5 軟件設(shè)計

本裝置只要接入USB端口,安裝好驅(qū)動,就可以通過USB接口將測量的數(shù)據(jù)進(jìn)行上傳。程序的整體流程圖如圖5所示。

6 結(jié)束語

文章在對溫濕度技術(shù)進(jìn)行深入研究的基礎(chǔ)上,全面比較國內(nèi)外同類產(chǎn)品的技術(shù)特點,合理地確定系統(tǒng)的設(shè)計方案。它可以方便的接入到物聯(lián)網(wǎng)中,具有廣闊的市場空間與發(fā)展前景。在文章研制的溫濕度測量裝置的基礎(chǔ)上,可以再做適當(dāng)?shù)墓δ軘U(kuò)展,使其功能更加完善,如歷史溫濕度記錄,溫濕度報警等。

參考文獻(xiàn)

[1]周航慈,吳文廣.基于嵌入式實時操作系統(tǒng)的程序[M].航空航天大學(xué)出版社.

[2]彭軍.傳感器與檢測技術(shù)[M].西安電子科技大學(xué)出版社,2003: 263-315.