《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式基于Proteus的ARM虛擬開發(fā)
嵌入式基于Proteus的ARM虛擬開發(fā)
摘要: 文章標(biāo)題:嵌入式基于Proteus的ARM虛擬開發(fā),。中國(guó)IT實(shí)驗(yàn)室嵌入式開發(fā)頻道提供最全面的嵌入式開發(fā)培訓(xùn)及行業(yè)的信息,、技術(shù)以及相關(guān)資料的下載.
關(guān)鍵詞: ARM 嵌入式 Proteus RISC
Abstract:
Key words :

  現(xiàn)在,人們生活中的每個(gè)角落都有嵌入式設(shè)備的存在,,比如數(shù)碼相機(jī)、移動(dòng)電話,、TV機(jī)頂盒及掌上電腦等等,。這些嵌入式設(shè)備多采用32位RISC嵌入式處理器作為核心部件。

  其中基于ARM核的嵌入式處理器獨(dú)占鰲頭,,在32位RISC處理器中占據(jù)超過75%的市場(chǎng)份額,。ARM核嵌入式處理器通常采用C語言編程,目前ARM公司的開發(fā)工具ADS,、RealView以及Keil與arm核處理器結(jié)合較好,,得到了廣大嵌入式學(xué)習(xí)者的一致認(rèn)可。

  在傳統(tǒng)的嵌入式系統(tǒng)學(xué)習(xí)中,,嵌入式開發(fā)平臺(tái)是必不可少的,。其中資源少的開發(fā)平臺(tái)便宜但功能較少,資源多的開發(fā)平臺(tái)又價(jià)格不菲,,這對(duì)廣大的嵌入式愛好者無疑是個(gè)障礙,。然而,有沒有在不增加甚至降低開發(fā)成本的同時(shí)還能進(jìn)行同樣或更好的開發(fā)呢,?本文介紹的Proteus軟件就是一個(gè)可以完全脫離硬件平臺(tái)來學(xué)習(xí)嵌入式系統(tǒng)進(jìn)行虛擬開發(fā)的利器,,可以說是嵌入式系統(tǒng)學(xué)習(xí)的一次革命。

  1 Proteus簡(jiǎn)介

  Proteus軟件是英國(guó)Labcenter electronics公司的EDA工具軟件,,是一個(gè)電子設(shè)計(jì)的教學(xué)平臺(tái),、實(shí)驗(yàn)平臺(tái)和創(chuàng)新平臺(tái),涵蓋了電工電子實(shí)驗(yàn)室,、電子技術(shù)實(shí)驗(yàn)室,、單片機(jī)應(yīng)用實(shí)驗(yàn)室等的全部功能。

  其革命性的功能是將電路仿真和微處理器仿真進(jìn)行協(xié)調(diào),直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試,,并進(jìn)行功能驗(yàn)證,,通過動(dòng)態(tài)器件(如電機(jī)、LED,、LCD,、開關(guān)等),配合系統(tǒng)配置的虛擬儀器(如示波器,、邏輯分析儀等),,可實(shí)時(shí)看到運(yùn)行后的輸入輸出的效果,其主要特點(diǎn)如下:

  (1)可以仿真,、分析各種模擬器件和集成電路,,其支持Pillips公司系列的arm(LPC系列),Proteus的仿真是基于SPICE3F5的,,因此它也能像其它的EDA軟件那樣進(jìn)行電路分析,,如模擬分析、數(shù)字分析,、混合信號(hào)分析,、頻率分析等等;

  (2)提供了虛擬示波器,、邏輯分析儀,、信號(hào)發(fā)生器,、計(jì)數(shù)器,、電表、Virtual Terminal等虛擬儀器儀表供選擇,;

  (3)能夠進(jìn)行SCH(原理圖)和PCB(印刷板)電路的設(shè)計(jì),;

  (4)其自身只帶匯編編譯器,不支持C語言,。但可以將它與Keil,、ADS集成開發(fā)環(huán)境連接,將用匯編和C語言編寫的程序編譯好之后,,可以立即進(jìn)行軟,、硬件結(jié)合的系統(tǒng)仿真,達(dá)到很好的仿真效果,。

  2  Proteus環(huán)境下的系統(tǒng)設(shè)計(jì)與仿真

  Proteus和PROTEL,、EWB等軟件相似,繪制原理圖都要先從器件庫(kù)里取出所需的元器件符號(hào)并在繪圖區(qū)布局好,,同時(shí)編輯好元件的參數(shù),,接著進(jìn)行連線,添加必要的網(wǎng)絡(luò)標(biāo)號(hào)等步驟。下面通過一個(gè)簡(jiǎn)單的實(shí)例說明如何使用Proteus軟件實(shí)現(xiàn)arm(以LPC2124為例)系統(tǒng)設(shè)計(jì)與仿真,。實(shí)例以 LPC2124控制器為核心,,與L297、L298組成步進(jìn)電機(jī)控制器,,添加必要的外圍電路,,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的正、反轉(zhuǎn)控制,。

  2.1 電路原理圖的設(shè)計(jì)

  運(yùn)行Proteus VSM的ISIS后出現(xiàn)如圖1所示的主窗口界面,,點(diǎn)擊“File”—“New Design”新建一個(gè)設(shè)計(jì)項(xiàng)目。接下來就是在其中所需的添加元器件了,,點(diǎn)擊元器件添加按鈕會(huì)彈出“Pick Devices”對(duì)話框,,在其中選擇需要添加的元器件,添加到器件列表區(qū)中,。然后再依次點(diǎn)擊列表區(qū)里的元器件,,把它們放到繪圖區(qū)并編輯其屬性,接著進(jìn)行合理的布局之后,,就可以進(jìn)行連線了,。與PROTEL類似,Proteus也具有自動(dòng)捕捉節(jié)點(diǎn)和自動(dòng)布線功能,,連線時(shí)當(dāng)鼠標(biāo)的指針靠近一個(gè)對(duì)象的引腳時(shí),,跟著鼠標(biāo)的指針就會(huì)出現(xiàn)一個(gè)“×”提示符號(hào),點(diǎn)擊鼠標(biāo)左鍵即可畫線,,在終點(diǎn)再點(diǎn)擊確認(rèn)一下就完成一段導(dǎo)線,,所有導(dǎo)線畫完后,點(diǎn)擊電源按鈕,,添加必要的電源和接地符號(hào),,并編輯其屬性后,原理圖的繪制就完成了,,如圖2所示,。

  2.2 程序代碼的編寫

  程序代碼的編寫主要分四個(gè)部分進(jìn)行:

  (1) LPC2124的初始化代碼;

  (2) LPC2124異常向量入口及異常向量與C語言代碼的接口,,包括初始化堆棧的代碼,;

  (3) LPC2124目標(biāo)板特殊的代碼,包括異常處理程序和目標(biāo)板初始化程序,;

  (4) 根據(jù)我們實(shí)例要求,,結(jié)合原理圖,編寫實(shí)現(xiàn)預(yù)期功能的代碼,,即通常的執(zhí)行代碼,,代碼文件保存為“main.c”,。

  通常,為了節(jié)省開發(fā)者的時(shí)間,,通常把這些文件保存在一個(gè)文件夾里,,暫且把文件夾命名為“lpc2124模塊”,這樣在以后的程序代碼編寫時(shí)就可以直接調(diào)用這個(gè)模塊,,再根據(jù)不同的要求改寫“main.c”就行了,,而不必要又重新編寫這些程序,節(jié)省了大量時(shí)間,,大大提高了工作效率,。

  這里主要說明“main.c”的編寫,要實(shí)現(xiàn)的功能是用LPC2124控制器,、LP297,、L298組成的步進(jìn)電機(jī)控制 器,控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),,原理圖中可以看到各元器件引腳的連接,,圖中還設(shè)置了七個(gè)電壓探針,用數(shù)字圖表顯示各電壓節(jié)點(diǎn)的電平隨時(shí)間變化的曲線,。KEY鍵控制電機(jī)的正反轉(zhuǎn)(KEY鍵按下則電機(jī)反轉(zhuǎn)),。程序流程圖如圖3所示。根據(jù)程序流程圖編寫好執(zhí)行代碼文件“main.c”,。

  圖3 程序流程圖

  圖4  ADS編譯環(huán)境窗口

  2.3 仿真

  文中采用ADS集成開發(fā)環(huán)境進(jìn)行程序的編譯連接設(shè)置,,ADS集成開發(fā)環(huán)境是ARM公司推出的ARM核微控制器集成開發(fā)工具,英文全稱為ARM Developer Suite,,成熟版本為ADS1.2,。ADS1.2支持ARM10以前的所有arm系列微控制器,支持軟件調(diào)試,,支持匯編,、C和C++源程序,,具有編譯效率高,、系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn)。

  打開ADS1.2集成開發(fā)環(huán)境CodeWarrior IDE,,點(diǎn)擊Project→New Project建立一個(gè)新的工程lcd.mcp,,把以上編好的代碼文件全部添加進(jìn)工程,如圖4所示,。進(jìn)行相關(guān)設(shè)置后,,選擇Project→Make命令,編譯并連接工程,,生成stepper.hex文件,。

  在原理圖中右擊微控制器LPC2124,,再單擊,出現(xiàn)一屬性設(shè)置窗口Edit Component,,如圖5,。在其中的Program File中添加上面生成的stepper.hex文件的路徑,單擊OK完成設(shè)置,。

  點(diǎn)擊原理圖左下角中的運(yùn)行按鈕,,即開始仿真運(yùn)行。

  仿真結(jié)果如圖6所示,。數(shù)字圖表顯示各電壓節(jié)點(diǎn)的電平值隨時(shí)間變化的曲線,,步進(jìn)電機(jī)按要求運(yùn)行,按下KEY鍵電機(jī)反轉(zhuǎn),。仿真結(jié)果完全符合設(shè)計(jì)要求,。

  圖5 器件編輯窗口

  圖6  仿真結(jié)果圖

  3  結(jié)語

  通過以上簡(jiǎn)單的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)過程可以看出,用Proteus軟件進(jìn)行ARM虛擬開發(fā)的優(yōu)勢(shì)所在,。使用Proteus進(jìn)行arm的虛擬開發(fā),,不僅可以減少實(shí)驗(yàn)硬件資本的投入,還突破了實(shí)際開發(fā)板中實(shí)驗(yàn)內(nèi)容的局限性,,使開發(fā)者能夠充分發(fā)揮自身的主動(dòng)性,。使用Proteus仿真,大大降低了開發(fā)成本,,提高了開發(fā)效率,。筆者相信隨著電子技術(shù)的不斷發(fā)展、完善,,基于軟件的硬件虛擬開發(fā)的應(yīng)用將會(huì)發(fā)揮越來越重要的作用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。