新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR單片機(jī)的控制系統(tǒng)設(shè)計(jì)

基于AVR單片機(jī)的控制系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2014-12-19 來源:網(wǎng)絡(luò) 收藏

  引言

本文引用地址:http://m.butianyuan.cn/article/267092.htm

  現(xiàn)在許多的系統(tǒng)都采用了多通道Input/Output的設(shè)計(jì),控制系統(tǒng)的設(shè)計(jì)也日趨復(fù)雜、龐大,所以有必要將控制電路單獨(dú)分離出來。過去許多系統(tǒng)均采用C51系列單片機(jī)作為控制電路,但其功能有限,電路設(shè)計(jì)較為復(fù)雜、影響了系統(tǒng)的穩(wěn)定性,也不易擴(kuò)展。本文介紹的單片機(jī)由美國ATMEL公司生產(chǎn),采用RISC指令集,內(nèi)置RAM及可以擦寫數(shù)千次的FLASH,采用哈佛結(jié)構(gòu),速度較快。為此系列中功能最強(qiáng)大的一款,用于設(shè)計(jì)控制系統(tǒng)能適應(yīng)現(xiàn)時(shí)復(fù)雜系統(tǒng)的要求。

  單片機(jī)介紹

  ATMEL公司是世界上著名的高性能低功耗非易失性存儲(chǔ)器和數(shù)字集成電路的一流半導(dǎo)體制造公司。單片機(jī)由ATMEL公司開發(fā),是過去12年里第一個(gè)新發(fā)布的8位RISCMCU,執(zhí)行大多數(shù)指令只需一個(gè)時(shí)鐘周期速度快(8MHzAVR≈200MHzC51)。其32個(gè)通用寄存器直接與ALU相連,消除了運(yùn)算瓶頸;同時(shí)由于C編譯專家的參與,C代碼效率極高;用戶在享受C語言帶來的極大便利的同時(shí)無需擔(dān)心消耗更多的資源。芯片內(nèi)嵌可串行下載或自我編程的FLASH和E2PROM.具有以下功能:電壓檢測BOD復(fù)位源寄存器看門狗、PWM、10位A/D、模擬比較器、UART、I2C、SPI、實(shí)時(shí)時(shí)鐘等。具有Idle/Power-Save和Power-Down等低功耗運(yùn)行模式,可電平中斷喚醒PowerDown.同時(shí)具有完整產(chǎn)品線,F(xiàn)LASH從1KB到128KB,E2PROM從64B到4KB,SRAM從128B到4KB,引腳數(shù)從8到64.

  其中Atmeg128為AVR系列中的代表性產(chǎn)品之一。相比其它產(chǎn)品,該芯片有以下特性:

  (1)先進(jìn)的RISC結(jié)構(gòu):133條功能強(qiáng)大的指令,大部分在單時(shí)鐘周期內(nèi)完成,32×8個(gè)通用工作寄存器+外設(shè)控制寄存器,最高可工作在16MHz下,性能可達(dá)16MIPS;片內(nèi)帶有執(zhí)行時(shí)間為2個(gè)時(shí)鐘周期的硬件乘法器。

  (2)程序和數(shù)據(jù)存儲(chǔ)區(qū):128kB在線可編程Flash存儲(chǔ)器,可反復(fù)擦寫1000次;可通過獨(dú)立的加密位選擇引導(dǎo)程序代碼段,可通過片內(nèi)引導(dǎo)程序?qū)崿F(xiàn)在線系統(tǒng)編程,寫操作時(shí)真正可讀;4kB的EEPROM存儲(chǔ)區(qū),可反復(fù)擦寫100,000次。4kB的片內(nèi)SRAM存儲(chǔ)區(qū),可外部擴(kuò)展為64kB.

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

  硬件系統(tǒng)主要由CPU(AVR單片機(jī))、人機(jī)操作和顯示接口(液晶顯示、鍵盤、指示燈和蜂鳴器)、通信接口組成。系統(tǒng)框圖如圖1所示

  

 

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

  CPU為核心處理器件,通過I/O接口方式或A/D總線方式與液晶、顯示鍵盤、指示燈和蜂鳴器交互,作者實(shí)現(xiàn)了兩個(gè)版本,分別采用I/O方式和A/D總線方式。通信接口主要用到了UART接口和擴(kuò)展的網(wǎng)絡(luò)接口。其中UART提供了RS-232和接口,RS-232提供全雙工單對單通信同時(shí),而以主/從方式與系統(tǒng)的多個(gè)部分通信,可用于多通道的輸入輸出設(shè)備。該芯片本身并不帶網(wǎng)絡(luò)接口,通過擴(kuò)展一個(gè)W3100A連接RT-L8201(L)芯片,實(shí)現(xiàn)TCP/IP協(xié)議棧,從而使設(shè)備可以接入LAN,實(shí)現(xiàn)在LAN內(nèi)的遠(yuǎn)程控制管理和監(jiān)控。

  系統(tǒng)軟件結(jié)構(gòu)

  系統(tǒng)軟件體系分為幾個(gè)部分:

  (1)系統(tǒng)的循環(huán)檢測部分,用于檢測各通道的系統(tǒng)設(shè)備工作是否正常,出現(xiàn)異常時(shí)則通過三色指示燈報(bào)警(綠色代表正常,紅色代表異常,黃色為中間狀態(tài))。

  (2)系統(tǒng)的設(shè)置部分,接受用戶按鍵,用戶可以在GUI上設(shè)置希望設(shè)置的參數(shù)。

  (3)網(wǎng)絡(luò)接口部分,此時(shí)單片機(jī)系統(tǒng)不參與設(shè)置,主要功能將網(wǎng)絡(luò)部分獲得的數(shù)據(jù)導(dǎo)至各通道。軟件系統(tǒng)的核心部分在于菜單結(jié)構(gòu)的設(shè)計(jì)。

  本系統(tǒng)采用一種基于節(jié)點(diǎn)編號(hào)的三叉樹狀菜單的設(shè)計(jì)。將整個(gè)菜單看作一個(gè)菜單樹,每個(gè)界面對應(yīng)于樹中的一個(gè)節(jié)點(diǎn),父節(jié)點(diǎn)為當(dāng)前菜單的上一級菜單;右節(jié)點(diǎn)為當(dāng)前菜單的“兄弟”菜單,亦即上級菜單的其余子菜單。

  我們采用對節(jié)點(diǎn)編號(hào)的方式將整個(gè)菜單樹串起來,通過識(shí)別節(jié)點(diǎn)編號(hào)(ID)就能知道該節(jié)點(diǎn)處于哪一級菜單,同時(shí)也便于我們將菜單數(shù)初始化。編號(hào)方式:每級子菜單的編號(hào)為上級父菜單ID乘以10再加上該級子菜單在上級菜單中對應(yīng)的子項(xiàng)號(hào)(1,2,3.),我們將根節(jié)點(diǎn)ID編號(hào)為1,則根節(jié)點(diǎn)菜單的子菜單對應(yīng)的ID分別為11,12,13.ID為11的節(jié)點(diǎn)的下級菜單ID為:111,112,113.一個(gè)樹型結(jié)構(gòu)菜單的結(jié)構(gòu)和ID編號(hào)的實(shí)例如圖2所示。

  Typedef structmenu{ long ID; / /當(dāng)前菜單ID void ( * disp laymenu) ( long i, unsigned char j) ; / /當(dāng)前菜單對應(yīng)處理函數(shù)char cur; / /當(dāng)前菜單子項(xiàng)char total; / /子菜單總數(shù)structmenu * up, * down, * right; / /毗鄰子菜單}MENU;

  

 

  圖2一個(gè)菜單樹的實(shí)例

c語言相關(guān)文章:c語言教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


蜂鳴器相關(guān)文章:蜂鳴器原理

上一頁 1 2 下一頁

關(guān)鍵詞: AVR ATmega128 RS-485

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉