arm單片機(jī)范文

時(shí)間:2023-04-09 11:57:51

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

篇1

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

中圖分類號(hào):TN873.93; TP271文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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ī)長(zhǎng)期占據(jù)著微控制器(MCU)的主流市場(chǎng),但隨著技術(shù)與需求的發(fā)展,32位微控制器應(yīng)用增長(zhǎng)率也在不斷攀升。目前,基于ARM內(nèi)核的32位微處理器在市場(chǎng)上處于領(lǐng)導(dǎo)地位[12]。

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

Luminary Micro公司(已被TI公司收購(gòu)) Stellaris提供一系列的微控制器是首款基于ARMsR CortexTMM3的控制器,它們?yōu)閷?duì)成本尤其敏感的嵌入式微控制器應(yīng)用方案帶來了高性能的32位運(yùn)算能力。 這些具備領(lǐng)先技術(shù)的芯片使用戶能夠以傳統(tǒng)的8位和16位器件的價(jià)位來享受32位的性能。其中,LM3S811 微控制器正是針對(duì)工業(yè)應(yīng)用方案而設(shè)計(jì)的,包括測(cè)試和測(cè)量設(shè)備、工廠自動(dòng)化、建筑控制、運(yùn)動(dòng)控制、醫(yī)療器械、火警安防以及電力能源等[4]。

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

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

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

1.1LM3S811主控芯片

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

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

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

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

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

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

圖2LM3S811主控芯片與TH12864

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

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

2.1 底層驅(qū)動(dòng)部分

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

圖3TH12864硬件串行時(shí)序圖程序如下:

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ū)動(dòng)程序先預(yù)處理3個(gè)字節(jié)要發(fā)送數(shù)據(jù)的具體內(nèi)容,片選后,依次循環(huán),按時(shí)鐘信號(hào)發(fā)送每個(gè)字節(jié)的每一位,其中延時(shí)不能省略。

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

中層實(shí)現(xiàn)程序完成主要功能是,按照TH12864的用戶指令集,用底層驅(qū)動(dòng)程序發(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)); //延時(shí)約100 ms

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

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

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

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

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

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

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

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

整為“00H”*/

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

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

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

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

}

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

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

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

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

3結(jié)語

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

參考文獻(xiàn)

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

[2]崔琪琳,吳曉鳳.基于ARM的光源跟蹤系統(tǒng)的設(shè)計(jì)[J].電子測(cè)試,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)測(cè)系統(tǒng)中的應(yīng)用[J].測(cè)控技術(shù),2011,30(1):9799.

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

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

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

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

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

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

篇2

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

中圖文分類號(hào):TP368

隨著集成電路技術(shù)與工藝的發(fā)展進(jìn)步,單片機(jī)應(yīng)用領(lǐng)域也逐漸擴(kuò)廣,進(jìn)入到社會(huì)生產(chǎn)生活的方方面面。在某些成本敏感的應(yīng)用場(chǎng)合迫切需要具有速度高、容量大的深度嵌入式系統(tǒng),技術(shù)的進(jìn)步,使得以低廉的價(jià)格獲得高性能,低功耗單片機(jī)成為可能。借助極高的接口速度,我們就可以使用普通GPIO口在沒有SDRAM控制器的廉價(jià)單片機(jī)上實(shí)現(xiàn)軟件驅(qū)動(dòng)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)多個(gè)高速比較器和可編程增益放大器;(4)低功耗觸摸感應(yīng)功能,通過觸摸能將器件從低功耗狀態(tài)喚醒;(5)多個(gè)串行接口,包括UART;(6)強(qiáng)大靈活的定時(shí)器;(7)片外系統(tǒng)擴(kuò)展和數(shù)據(jù)存儲(chǔ)選項(xiàng)。

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,存儲(chǔ)器激活),RD(Read,讀,可設(shè)置是否自動(dòng)預(yù)充電),WR(Write,寫,可設(shè)置是否自動(dòng)預(yù)充電),PB(Precharge Bank,預(yù)充電存儲(chǔ)器,可設(shè)置全部/選定Bank),BS(Burst stop,停止突發(fā)傳輸),DQM(DQM,數(shù)據(jù)掩碼),AR(Auto Refresh,自動(dòng)刷新),BRSW(Burst-Read Single-Write,突發(fā)讀單一寫),SR(Self Refresh,自刷新,進(jìn)入/退出),PPD(Precharge Power Down,掉電預(yù)充電,可設(shè)置進(jìn)入/退出),CSS(Clock Suspend,時(shí)鐘掛起可設(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ù)線需要一個(gè)完整的8位口,接在K60的口8至15位,剩余控制線使用單片機(jī)未用接口即可。

2.3 MCU與Ov7725接口

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

3 軟件設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

typedef struct BlockNode

{ unsigned long int BlockAddr; unsigned char State;

struct BlockNode *left;

struct BlockNode *right;

} BNode, *pBNode;

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

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

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

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

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

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

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

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

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

5 應(yīng)用舉例

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

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

6 結(jié)語

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

參考文獻(xiàn):

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

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

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

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

篇3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    B17100710-6ARM微控制器基礎(chǔ)與實(shí)戰(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è)計(jì)與優(yōu)化沈建華譯75.02005.0512

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

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

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

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

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

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

    三、 DSP

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

    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ī)

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

    4.1  選編及器件手冊(cè)

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

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

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

    4.2  PIC單片機(jī)

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

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

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

    4.3  AVR單片機(jī)

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

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

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

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

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

篇4

關(guān)鍵詞:?jiǎn)纹瑱C(jī);發(fā)展趨勢(shì);電子技術(shù)

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

一、前言

單片機(jī)又被稱為微控制器,被廣泛地應(yīng)用到了工業(yè)控制領(lǐng)域上,對(duì)于電子技術(shù)的發(fā)展起到了極為重要的作用。雖然只是集中在一塊芯片上,但是單片機(jī)是一個(gè)完整的計(jì)算機(jī)系統(tǒng),具有定時(shí)器、通訊接口、外存、外部總線系統(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)品,幾乎都會(huì)集成有單片機(jī)。汽車配備40多部單片機(jī),而鼠標(biāo)、鍵盤、手機(jī)、掌上電腦、電子玩具、電話、家用電器、計(jì)算器等都配有1-2部單片機(jī),對(duì)于那些較為復(fù)雜的工業(yè)控制系統(tǒng)而言,甚至?xí)袛?shù)百臺(tái)、數(shù)千臺(tái)單片機(jī)在同時(shí)工作??梢赃@么說,單片機(jī)的數(shù)量甚至比人類的數(shù)量還要多[2]。

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

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

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

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

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

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

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

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

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

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

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

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

(一)微型單片化

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

(二)低功耗CMOS化

我們目前所大量使用的單片機(jī)功耗大概都在100 MW左右,而最早的單片機(jī)功耗大概在630 MW左右。而且單片機(jī)的發(fā)展趨勢(shì)是朝著低功耗的方向大力發(fā)展。目前互補(bǔ)金屬氧化物半導(dǎo)體工藝就是一種有效地減少單片機(jī)功耗的工藝技術(shù),更加適合于要求低功耗如電池供電的應(yīng)用場(chǎ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處理器是一個(gè)綜合體,ARM公司自身并不制造微處理器,而是同ARM的合作伙伴來制造,作為SOC(System On Chip)的典型應(yīng)用,目前,基于ARM的處理器以其高速度、低功耗等諸多優(yōu)異的性能而得到非常廣泛的應(yīng)用。

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

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

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

作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場(chǎng)的大部分市場(chǎng)份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM微控制器的低功耗、高性價(jià)比,向傳統(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芯片正逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。此外,ARM在語音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對(duì)DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn);

(4)消費(fèi)類電子產(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簡(jiǎn)介

2.1 Proteus軟件簡(jiǎn)介

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

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

2.2 NXP LPC2106簡(jiǎn)介

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

3.Protues下ARM7的典型實(shí)驗(yàn)

3.1 外部中斷實(shí)驗(yàn)

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

實(shí)驗(yàn)任務(wù):

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

3.2 矩陣鍵盤實(shí)驗(yàn)

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

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

實(shí)驗(yàn)任務(wù):

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

4.結(jié)束語

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

參考文獻(xiàn)

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

[2]陳家義.基于Proteus的ARM虛擬實(shí)驗(yàn)平臺(tái)[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在實(shí)驗(yàn)教學(xué)中的應(yīng)用分析[J].科技信息,2009(24).

篇6

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

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

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

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

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

2.1電源模塊

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

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

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

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

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

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

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

2.3存儲(chǔ)器模塊[1]

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

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

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

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

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

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

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

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

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

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

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

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

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

3軟件平臺(tái)的搭建

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

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

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

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

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

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

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

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

圖5串口監(jiān)視程序流程圖系統(tǒng)測(cè)試。將本系統(tǒng)與電腦通過串口線連接起來,電腦運(yùn)行串口軟件發(fā)送字節(jié)“0xaa”給系統(tǒng)板,電腦串口軟件的接收區(qū)出現(xiàn)“aa”,如圖6所示:通過現(xiàn)象可以說明系統(tǒng)正常運(yùn)行了。自此,HD6417708S單片機(jī)最小系統(tǒng)從無到有就算建立成功了。本系統(tǒng)詳細(xì)闡述了SH3系列單片機(jī)開發(fā)應(yīng)用時(shí)可能出現(xiàn)問題的解決方法,并用串口實(shí)驗(yàn)驗(yàn)證了最小系統(tǒng)的正確性。此最小系統(tǒng)基本將SH3處理器與其他處理器的不同之處都展現(xiàn)出來了,在此基礎(chǔ)上開發(fā)人員只要運(yùn)用單片機(jī)開發(fā)的共性理論就可以很好地使用SH3單片機(jī),大大縮短開發(fā)周期,降低開發(fā)難度。同時(shí)也為ARM一統(tǒng)天下的國(guó)內(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)用,實(shí)踐證明,該最小系統(tǒng)運(yùn)行穩(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 用戶手冊(cè)\[M\].北京:瑞薩科技,2007.

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

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

篇7

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

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

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

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é)/秒),按以下計(jì)算公式:

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

也就是可以播放時(shí)長(zhǎng)大約為2097秒的語音文件。

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

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

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

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

軟件設(shè)計(jì)工具采用Keil C51,語音播放主要用到單片機(jī)的兩個(gè)定時(shí)器。一個(gè)定時(shí)器用來產(chǎn)生8KHz的采樣頻率,本設(shè)計(jì)中采用T1定時(shí)器的8位定時(shí)器中斷功能,定時(shí)125us;另一個(gè)定時(shí)器用來產(chǎn)生PWM波形,本設(shè)計(jì)中采用T0定時(shí)器8位定時(shí)/計(jì)數(shù)器功能。設(shè)置好這兩個(gè)定時(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;

}

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

void Soundinit()

{

Pca_Initialize();

AUXR =(AUXR|0xbf);

TR0=0;

TR1=0;

TMOD = 0x22;

TH1=0x8c;

TL1=0x8c; //1/8000hz=125us,就是125US一個(gè)采樣點(diǎn),以11.0592M的晶振計(jì)算

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

TR0 = 1;

TR1 = 1;

ET1 = 1;

CR = 1;

PT1=1;

PT0=0;

EA = 1;

}

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

void timer1() interrupt 3

{

CCAP0H =SoundData[jx];

CCAP0L =SoundData[jx];

}

4 總結(jié)

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

作者簡(jiǎn)介

姜燕頻(1977-),女,上海市人。大學(xué)本科學(xué)歷,中級(jí)工程師。主要研究方向?yàn)榍度胧介_發(fā),單片機(jī)C51、ARM開發(fā)、linux驅(qū)動(dòng)開發(fā)、linux系統(tǒng)移植。

篇8

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

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

0 引 言

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

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

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

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

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

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

2.1 低功耗設(shè)計(jì)

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

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

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

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

2.2 時(shí)鐘切換設(shè)計(jì)

由2.1知,從低功耗的角度出發(fā),選擇了較低的工作頻率,但是系統(tǒng)中涉及到單片機(jī)控制步進(jìn)電機(jī)。MCLK為32 768 Hz時(shí),由此時(shí)鐘延時(shí)產(chǎn)生的矩形脈沖的頻率太低,導(dǎo)致步進(jìn)電機(jī)不能轉(zhuǎn)動(dòng),所以在系統(tǒng)中考慮到時(shí)鐘的切換,即在調(diào)整步進(jìn)電機(jī)時(shí),要把單片機(jī)的主系統(tǒng)時(shí)鐘(MCLK)從LFXT1切換到LFXT2。BCSCTL2|=SELM1+SELM0該語句實(shí)現(xiàn)的是選擇MCLK的時(shí)鐘源為L(zhǎng)FXT1,即設(shè)置了BCSCTL2寄存器的高兩位為1(默認(rèn)為0)。當(dāng)要把MCLK的時(shí)鐘源選擇為L(zhǎng)FXT2時(shí),如果寄存器BCSCTL2的各個(gè)位仍為默認(rèn)值,則只需BCSCTL2|=SELM1語句便可成功的設(shè)置MCLK的時(shí)鐘源為L(zhǎng)FXT2[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的時(shí)鐘源由LFXT1切換到LFXT2。

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

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

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

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

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

3 結(jié) 語

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

參考文獻(xiàn)

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

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

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

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

篇9

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

中圖分類號(hào):TN820.334文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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ī)。它將電脈沖信號(hào)轉(zhuǎn)變成角位移,即給一個(gè)脈沖信號(hào),步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一步。在額定功率范圍內(nèi),電機(jī)的轉(zhuǎn)速只取決于脈沖的頻率和脈沖數(shù),而不受負(fù)載變化的影響,因此非常適合于數(shù)字化控制,尤其是與數(shù)字設(shè)備配套使用時(shí),體現(xiàn)了更大的優(yōu)越性?,F(xiàn)代單片機(jī)具有充足的I/O口、多路PWM通道和豐富的外部接口,使其特別適用于電機(jī)的控制。

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

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

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

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

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

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

(3) 功耗低,效率高。

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

另外,要使步進(jìn)電機(jī)正常工作,必須按照該種電機(jī)的勵(lì)磁狀態(tài)轉(zhuǎn)換表所規(guī)定的狀態(tài)和順序依次對(duì)各相繞組進(jìn)行通電或斷電控制。步進(jìn)電機(jī)的驅(qū)動(dòng)電路根據(jù)控制信號(hào)工作,在步進(jìn)電機(jī)的單片機(jī)控制中,控制信號(hào)由單片機(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ā)一個(gè)控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個(gè)脈沖,它會(huì)再轉(zhuǎn)一步。兩個(gè)脈沖的間隔時(shí)間越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。因此,脈沖的頻率決定了步進(jìn)電機(jī)的轉(zhuǎn)速。調(diào)整單片機(jī)發(fā)出脈沖的頻率,就可以對(duì)步進(jìn)電機(jī)速度進(jìn)行調(diào)整。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3結(jié)語

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

參考文獻(xiàn)

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

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

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

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

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

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

[7]李自成,程善美.基于DSP交流伺服系統(tǒng)與CAN總線的通信設(shè)計(jì)\[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ù)已成為衡量一個(gè)國(guó)家科學(xué)技術(shù)發(fā)展水平的重要標(biāo)志之一。為了提高對(duì)溫濕度傳感器的深入研究,基于物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了本裝置。

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

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

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

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

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

5 軟件設(shè)計(jì)

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

6 結(jié)束語

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

參考文獻(xiàn)

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

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