新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR單片機開發(fā)經(jīng)驗

AVR單片機開發(fā)經(jīng)驗

作者: 時間:2011-11-24 來源:網(wǎng)絡 收藏
提高硬件設計的合理性:

  盡量合理和充分使用AVR片內(nèi)的資源,如EEPROM、A/D、內(nèi)部的RC振蕩源。

  盡量采用串口通信連接的外圍器件,大容量的存儲器、LCD控制器、打印機、不用8279(LED數(shù)碼管+鍵盤)而使用7279等。除了必須外擴RAM(如語音和圖象),一般不提倡使用并行擴展(573+譯碼電路),減小硬件和連線以及PCB板上錯誤的出現(xiàn)概率,同時也提高了系統(tǒng)的可靠性。并行擴展向串行擴展是發(fā)展趨勢。現(xiàn)在有大量的新的外圍器件采用高速的串行接口,如A/D、D/A、RTC、存儲器等。

  盡量使用以及在目標板上預留ISP程序下載接口,或使用IAP技術。

  優(yōu)點:ISP接口與I/O的兼容性比JETAG好。

  缺點:不能在線調(diào)試

  注意和掌握AVR配置熔絲位的使用:

  . 系統(tǒng)晶振的選擇

  .BOD的使用

  .啟動延時.Mega8的PC6引腳,RESET與通用I/O的轉(zhuǎn)換

  .JETAG接口和通用I/O的轉(zhuǎn)換

  .啟動向量的轉(zhuǎn)換,BOOT-LOAT區(qū)大小的設置

  提高硬件可靠性的考慮:

  .盡量采用片內(nèi)晶體、采用低頻率的系統(tǒng)時鐘、振蕩電路的輸出小幅度。

  .選擇合適的啟動延時參數(shù)

  .使用BOD、片內(nèi)的看門狗

  .合理休眠方式的使用

  .不用I/O口設定輸出低電平

  .利用內(nèi)部的EEProm和寄存器MCUCSR判斷復位標志,進行不同的處理

  提高軟件設計的能力和水平:

  盡量合理采用高級語言設計編寫系統(tǒng)程序。有許多人認為使用匯編寫程序比較精簡,而用高級語言開發(fā)會浪費很多程序空間,其實這是一種誤解。對一個有經(jīng)驗的,而且非常熟悉某種單片機的匯編高手而言,他是能寫出比高級語言更精簡的代碼。而對匯編不是很熟的開發(fā)者、或突然更換了一種新的單片機,您能保證一定可以寫出比高級語言更簡練的代碼嗎?

  高級語言的優(yōu)越性是匯編語言不能比的:

  .程序移植方便

  .程序的堅固性

  .數(shù)學運算的支持

  .條理清晰的結構化編程,程序的可維護性。

  .可協(xié)同開發(fā)軟件,開發(fā)周期短。

  現(xiàn)在的高級語言編譯器(如C編譯器)已可以產(chǎn)生代碼效率很高的機器代碼,因此建議大家能用高級語言實現(xiàn)的程序盡可能使用高級語言寫,在對速度和時序要求特嚴的場合可以采用混合編程的方法來解決。

  更深入和全面的掌握各種串行通信協(xié)議的規(guī)程:

  嵌入式系統(tǒng)目前以大量的使用串行接口外圍芯片和各種通信接口,如RS232、兩線(I2C)、三線(SPI)、單總線、USB、CAN、TCP/IP等。開發(fā)人員和程序員應了解低層協(xié)議,熟悉硬件怎樣和如何實現(xiàn)低層協(xié)議,如何定義可靠的上層應用協(xié)議,以及低層協(xié)議驅(qū)動同上層應用協(xié)議之間的接口設計(中間層軟件的實現(xiàn))等。

  硬件工程師的軟件編寫能力要提高,采用標準程序編寫方式、完善的軟件整體框架的設計、良好的數(shù)據(jù)結構和程序結構系統(tǒng)。(計算機軟件專業(yè)的程序設計員對硬件不熟悉、大部分是在操作系統(tǒng)支持下編寫軟件,對低層接口和協(xié)議的驅(qū)動層以及接口也不了解,往往也編寫不出好的單片機系統(tǒng)程序。)

  通信接口的編寫應盡量

  .采用中斷+緩沖區(qū),

  .分層+結構化設計,

  .盡量不使用輪循方式(降低AVR的效率)。參見URAT(RS232)驅(qū)動+中間層軟件示例。

  采用好的系統(tǒng)設計模式:

  盡量不使用傳統(tǒng)的前后臺(中斷)系統(tǒng)設計模式,任務之間相互影響和干擾,無法定時操作。如設計一個采用動態(tài)掃描方式驅(qū)動的8位LED數(shù)碼管顯示+動態(tài)掃描的4*4矩陣鍵盤。

  采用TimeTip+狀態(tài)機設計+CASE結構,實現(xiàn)多任務并行運行系統(tǒng)設計方法?;驎r間觸發(fā)式的系統(tǒng)設計。(見:《時間觸發(fā)嵌入式系統(tǒng)設計模式》中國電力出版社 2004.6)

  移植小型嵌入式操作系統(tǒng),如UCOS-II。在網(wǎng)上有些免費的基于AVR的簡潔的操作系統(tǒng)。

  提高C語言的編程能力和軟件應用水平:

  熟悉和用好C中的數(shù)據(jù)結構體、指針應用、內(nèi)存管理等較高級的應用。

  熟悉和了解你所使用的高級語言開發(fā)平臺的特點。這些平臺是針對某一類處理器的,包含許多特殊的不兼容的語句和擴展的結構、語句、函數(shù)等。盡管使用方便,但由于其不透明性和時間的不確定性,因此要合理使用。如C中的Getchar()、Putchar()等。AVR有多個開發(fā)平臺,每個都有其特點和不足。能夠綜合使用這些平臺,相互互補,能夠提高開發(fā)效率。如通過ICC、CVAVR的程序生成器CodeWizard學習和了解AVR的硬件設置,簡化計算,快速的生成程序基本模塊,如“一個URAT(RS232)低層驅(qū)動+中間層軟件示例”。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉