国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM芯片的PDA系統(tǒng)中硬件設(shè)計實現(xiàn)

2009-05-12 03:14章琳琳
現(xiàn)代電子技術(shù) 2009年2期
關(guān)鍵詞:驅(qū)動程序

胡 劍 李 偉 章琳琳

摘 要:嵌入式PDA系統(tǒng)廣泛應(yīng)用于各個領(lǐng)域,為了設(shè)計一個高性能低成本的PDA系統(tǒng),該設(shè)計利用ADS1.2開發(fā)環(huán)境開發(fā)基于ARM芯片的PDA系統(tǒng),采用STR710芯片設(shè)計PDA硬件電路系統(tǒng),利用壞塊管理技術(shù)實現(xiàn)NAND_FLASH的存儲管理,提高系統(tǒng)的整體性能,以及其在整體電路系統(tǒng)設(shè)計中外圍芯片與CPU連接方式的可行性探討,通過該設(shè)計很好地實現(xiàn)了預(yù)期目的,證實了系統(tǒng)采用ST公司的STR710芯片設(shè)計一套嵌入式PDA的可行性。

關(guān)鍵詞:ARM;嵌入式PDA;驅(qū)動程序;NAND_FLASH

中圖分類號:TP368.1文獻(xiàn)標(biāo)識碼:B

文章編號:1004 373X(2009)02 048 03

Realization of Hardware Design in PDA Based on ARM

HU Jian,LI Wei,ZHANG Linlin

(Zhejiang Industry Polytechnic College,Shaoxing,312000,China)

Abstract:Embedded PDA system is applied in many fields widely.In order to design a high performance low cost PDA system.The design uses ADS1.2 integrated development environment to design a PDA system based on ARM core.An embedded PDA hardware system is designed by adopting STR710 chip.NAND_FLASH memory manage is realized by bad block management to improve system′s performance,connection feasibility of CPU to periphery chip is discussed.Anticipated goal is completed through the design.It confirms that using STR710 CPU to realize LCD&NAND;_FLASH function is possible and discusses the future work at last.

Keywords:ARM;embedded PDA;driver program;NAND_FLASH

0 引 言

隨著CPU技術(shù)的進(jìn)一步發(fā)展,基于ARM平臺的32位嵌入式PDA技術(shù)也得到了很大的發(fā)展。PDA已經(jīng)從原來簡單意義上的個人數(shù)字助理,變成了人們離不開的隨身工具。該設(shè)計基于ARM平臺的STR710 CPU,主要完成了其硬件電路的設(shè)計及實現(xiàn)并通過編程實現(xiàn)液晶顯示器、NANAD_FLASH的驅(qū)動的設(shè)計并在此基礎(chǔ)實現(xiàn)PDA的圖形操作。

1 系統(tǒng)設(shè)計及功能模塊

設(shè)計中主要采用ARM平臺的32位處理器STR710,NAND512W3,MAX4468語音數(shù)據(jù)采集芯片以及LCD液晶顯示器,在完成硬件電路的基礎(chǔ)上編寫程序?qū)崿F(xiàn)LED顯示器及NAND_FLASH驅(qū)動。系統(tǒng)采用STR710單片機(jī)設(shè)計實現(xiàn)PDA系統(tǒng)具有很高的性價比和可靠性特別是在A/D采集上具有12位的精度非常適合工業(yè)和手持設(shè)備使用。

1.1 STR710及NAND512W3主要芯片功能介紹

ST ARM微控制器集成了常用的各種外設(shè),彌補(bǔ)了其他許多ARM微控制器的不足,可以大大簡化系統(tǒng)硬件設(shè)計。在設(shè)計中采用NAND_FLASH是由于在PDA系統(tǒng)中一般需要存放大量代碼及數(shù)據(jù)而NAND512W3系列芯片[1]正好具有很高的存儲密度、可擦寫性能好、穩(wěn)定性好等優(yōu)點很適合作PDA的存儲芯片,而且具有很高的性價比。

1.2 STR710與各芯片的功能模塊及接口電路設(shè)計

在系統(tǒng)中PDA主要有以下功能[2,3]:通過CPU的控制實現(xiàn)LCD顯示屏的顯示控制,NAND_FLASH的存儲操作、并實現(xiàn)數(shù)據(jù)的FAT16格式存儲,數(shù)據(jù)ADC采集, USB接口的識別及控制鍵操作等功能模塊主要功能模塊如圖1所示。

1.3 STR710與主要外圍芯片接口電路

1.3.1 NAND_FLASH接口電路

設(shè)計采用STR芯片[3-5]的BANK3作為NAND_FLASH的外部存儲I/O口[1,6,7],主要引腳ALE,CLE引腳與處理器的P2.5,P2.6連接作為地址和命令鎖寸引腳的I/O口;讀、寫使能RE,WE引腳與nRD和nWE連接;I/O口與處理器的D0~D7連接用于數(shù)據(jù)傳輸。圖2為NAND_FLASH與STR710的典型接口連接圖。

在設(shè)計NAND_FLASH與STR710的接口電路圖時不能將電路設(shè)計為ALE,CLE,WP,R/B全部連接到STR710的地址線上。這樣在寫入命令或地址時會引起CLE和ALE(對應(yīng)MCU的地址線)在寫信號WE的上升沿鎖存時保持時間至少應(yīng)達(dá)到10 ns,而MCU的芯片說明中寫信號WE發(fā)出之后,地址線在WE的上升沿后的保持時間只有3 ns,這樣兩者之間會造成時序的不匹配,無法正確操作NAND_FLASH 。在設(shè)計時需采用將上述引腳與CPU的GPIO引腳連。

1.3.2 LCD接口電路

該設(shè)計采用160×160像素LCD液晶顯示器,R18是一個滑動變阻器可用于液晶顯示器進(jìn)行灰度的調(diào)節(jié),LCD片選信號與處理器的P2.0引腳連接,圖3為LCD顯示的典型接口電路。

2 PDA系統(tǒng)功能的實現(xiàn)

完成硬件電路設(shè)計并調(diào)試通過后主要針對以下3方面的軟件編程功能實現(xiàn):

對硬件電路(CPU及主要外圍電路)的初始化,NAND_FLASH驅(qū)動程序和LCD驅(qū)動程序的編寫及實現(xiàn)。

2.1 系統(tǒng)的初始化

初始化硬件電路[8]主要完成STR710各寄存器的配置及內(nèi)存映射和中斷向量配置、處理器與外芯片的初始化以及功能庫函數(shù)加載等。其主要步驟是首先調(diào)用71x_init.s源文件完成CPU各寄存器的初始化配置后中斷異常的處理實現(xiàn)及中斷優(yōu)先級設(shè)置、系統(tǒng)堆棧和變量的初始化最后完成初始化后使用BL 語句跳轉(zhuǎn)至MAIN功能函數(shù):IMPORT main;B main;main為C語言主函數(shù)入口。初始化流程圖如圖4所示。

2.2 NAND_FLASH驅(qū)動程序

NAND_FLASH的驅(qū)動[9,10]主要包括芯片的復(fù)位,ID的正確讀取,塊的擦除,和頁的寫入和讀取幾個操作。此外NAND_FLASH允許要2%的壞塊,在編寫驅(qū)動時要做好NANDFLASH的壞塊的統(tǒng)計與管理,壞塊的識別主要是讀取塊中第一頁的第6字節(jié)的1個WORD是否為FF來判斷塊的好壞。為了便于統(tǒng)計壞塊和存儲管理須在調(diào)用NAND_FLASH內(nèi)存管理函數(shù)時建立壞塊統(tǒng)計表,系統(tǒng)不斷使用會增加壞塊的數(shù)量,在每次系統(tǒng)啟動時都可以通過調(diào)用內(nèi)存管理函數(shù)來更新壞塊表實現(xiàn)對內(nèi)存的最優(yōu)管理以提高系統(tǒng)的性能。壞塊管理流程如圖5所示。

NAND_FLASH驅(qū)動主要步驟:

(1) 向指令寄存器寫入0xFF使芯片復(fù)位;

(2) 調(diào)用 Unsigned int check_Flash_Id(void) 函數(shù)讀取芯片ID:

For(i=0;i<10;i++); id=Nand_IO<<8; id+=Nand_IO;//讀出2個字節(jié) 即芯片ID

(3) 調(diào)用NAND_manage()函數(shù)做壞塊管理;

(4) 調(diào)用Unsigned int Erase_Block(unsigned int block)實現(xiàn)塊的擦除;

(5) 調(diào)用int Write_page()和int Read_page()寫入和讀出頁數(shù)據(jù)。

2.3 LCD驅(qū)動程序設(shè)計

在系統(tǒng)中LCD驅(qū)動程序主要是對屏幕顯示的初始化包括字符顯示高度和寬度、行字符顯示數(shù)、顯示頻率的設(shè)置以及顯示點位移設(shè)置、顯示合成設(shè)置、休眠模式設(shè)置、光標(biāo)形狀設(shè)置、光標(biāo)指針設(shè)置等操作。

LCD驅(qū)動LCD_Initialize(void)主要步驟:

(1) 調(diào)用LCD_WriteCommand(SYSTEM_SET);用于系統(tǒng)初始化。

(2) 調(diào)用LCD_WriteCommand(SCROLL);用于顯示域設(shè)置。

(3) 調(diào)用LCD_WriteCommand(HDOT_SCR);用于光標(biāo)點位移設(shè)置。

(4) 調(diào)用LCD_WriteCommand(OVLAY);用于顯示合成設(shè)置。

(5) 調(diào)用LCD_WriteCommand(CSRFORM);

LCD_WriteData(0x07); LCD_WriteData(0x87);用于初始化光標(biāo)形狀。

設(shè)計好驅(qū)動后利用ADS1.2編譯器將程序燒至RAM進(jìn)行調(diào)試,可根據(jù)屏幕顯示字符尺寸大小及適宜程度再做修改驅(qū)動程序直至滿意。

3 系統(tǒng)調(diào)試

當(dāng)設(shè)計好硬件系統(tǒng)后,要對電路板進(jìn)行整體調(diào)試看各功能模塊是否正常,值得注意的是在設(shè)計NAND_FLASH接口電路時不能將ALE,CLE,WP,R/B 全部連接到STR710的地址線上否則會引起兩者間的時序不匹配。在設(shè)計NAND_FLASH文件系統(tǒng)時采用F16系統(tǒng)可根據(jù)系統(tǒng)需要修改ST公司提供的F16文件系統(tǒng)代碼。

4 結(jié) 語

該設(shè)計是基于ARM芯片的STR710嵌入式PDA系統(tǒng),很好實現(xiàn)了硬件系統(tǒng)的設(shè)計以及LCD顯示器、NAND_FLASH的驅(qū)動程序、基于F16文件系統(tǒng)在NAND_FLASH大容量數(shù)據(jù)的文件存儲管理。隨著信息化、智能化、網(wǎng)絡(luò)化的快速發(fā)展,嵌入式PDA技術(shù)也將獲得廣闊的發(fā)展空間。

參考文獻(xiàn)

[1] ST公司.STR71XF_DATASHEET.PDF,2002(4):1-50.

[2]周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實列[M].北京:北京航空航天大學(xué)出版社,2005.

[3]張崙.32位嵌入式系統(tǒng)硬件設(shè)計與調(diào)試[M].2版.北京:機(jī)械工業(yè)出版社,2003.

[4]周立功.PDIUSBD12固件編程與驅(qū)動開發(fā)[M].北京:北京航空航天大學(xué)出版社,2003.

[5]佚名.STR710與NAND512W3A的接口時序問題 [EB/OL].http://www.dzsc.com/dzbbs/,2007.

[6]沈建華.STR710X系列ARM 微控制器原理與實踐[M].北京:北京航空航天大學(xué)出版社,2006.

[7]Fuber S.ARM SoC體系結(jié)構(gòu)[M].2版.田澤,于郭山,盛世敏,譯.北京:北京航空航天大學(xué)出版社,2002.

[8]田澤.ARM嵌入式系統(tǒng)軟件開發(fā)與應(yīng)用實驗教程.北京:北京航空航天大學(xué)出版社,2004.

[9]ST公司.NAND512w3a_DATASHEET.PDF,2001(6):1-46.

[10]胥靜.嵌入式系統(tǒng)系統(tǒng)設(shè)計開發(fā)實例詳解[M].北京:北京航空航天大學(xué)出版社,2005.

作者簡介 胡 劍 男,1984年出生,浙江紹興人,浙江工業(yè)職業(yè)技術(shù)學(xué)院,教師。研究方向為嵌入式系統(tǒng)及通信網(wǎng)。

猜你喜歡
驅(qū)動程序
計算機(jī)硬件設(shè)備驅(qū)動程序分析
基于MPC8280的CPU單元與內(nèi)部總線驅(qū)動程序設(shè)計
妙用鼠標(biāo)驅(qū)動
驅(qū)動程序更新與推薦
本溪市| 新野县| 巴马| 讷河市| 永泰县| 阜平县| 吉木乃县| 大邑县| 商都县| 兴业县| 井陉县| 崇阳县| 宝鸡市| 巴楚县| 社会| 民权县| 喜德县| 偏关县| 闻喜县| 赞皇县| 廊坊市| 兴和县| 长子县| 五原县| 二连浩特市| 建德市| 墨江| 仙桃市| 金寨县| 定西市| 工布江达县| 荣昌县| 长丰县| 交口县| 开平市| 辽中县| 商丘市| 湘乡市| 阳新县| 老河口市| 隆安县|