自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于AT90S8515的串行通信及其應(yīng)用
基于AT90S8515的串行通信及其應(yīng)用
 更新時間:2009-11-24 13:04:08  點擊數(shù):0
【字體: 字體顏色

摘 要:介紹了高性能AVR微控制器AT90S8515的串行通信接口UART的主要性能特點,并給出串行數(shù)據(jù)通信的程序。
關(guān)鍵詞:AT90S8515微控制器 串行接口UART 應(yīng)用程序

0 引 言

美國ATMEL公司推出的90系列單片機是增強RISC內(nèi)載Flash的高性能八位單片機,通稱為AVR
單片機,設(shè)計上采用低功耗CMOS技術(shù),而且在軟件上有效支持C高級語言(用IAR系統(tǒng)的ICC90C編譯器編譯)及匯編語言(用ATP匯編器編譯)。
其中AT90S8515是功能較強的一種型號,它有40引腳PDIP和44引腳PLCC、TQFP等多種封裝形
式, 具有120條功能強大的指令,而且大多數(shù)執(zhí)行時間為單時鐘周期,指令周期最短僅為125ns。它具有以下主要特征:片內(nèi)有8K字節(jié)可下載的Flash存儲 器,程序下載采用其SPI串行接口,使用壽命為1000次;32條通用I/O線及32個通用8位寄存器R0~R31,64個I/O專用寄存器;512字節(jié) 的EEPROM(使用壽命為10萬次)及512字節(jié)的內(nèi)部SRAM;供電電壓在VCC為4.0~6.0V內(nèi)可以全靜態(tài)工作范圍為0~8MHz;提供內(nèi)部及 外部中斷源;帶片內(nèi)晶振器的可編程看門狗定時器;并有2種可通過軟件選擇的電源節(jié)電模式:閑置模式、掉電模式;可編程的全雙工串行通信接口UART;一個 8位定時器/計數(shù)器T/C0,一個16位的帶預(yù)分頻及比較模式、捕獲模式及雙工8位、9位或10位的PWM輸出的定時器/計數(shù)器T/C1。本文著重介紹其 片內(nèi)UART在實際中的應(yīng)用。

1 串行接口UART的主要特征和工作原理

1.1 串行接口UART的主要特征
AT90S8515帶有一個全雙工的通用異步收發(fā)器(UART),特征如下:
(1)波特率發(fā)生器可以生成任何波特率;
(2)在XTAL低頻率下有高的波特率;
(3)8位和9位數(shù)據(jù);
(4)噪聲濾波;
(5)超越誤差的檢測;
(6)幀錯誤檢測;
(7)錯誤起始位檢測;
(8)3個獨立的中斷,即TX完成,TX數(shù)據(jù)寄存器空,RX完成。
其數(shù)據(jù)發(fā)送通過把被傳送的數(shù)據(jù)寫入UART的I/O數(shù)據(jù)寄存器UDR來初始化,然后數(shù)據(jù)從UDR傳送到移位寄存器中。在波特率時鐘加載到移位寄存器的傳 送操作時,起始位從TXD引腳移出,然后是數(shù)據(jù)最低位在先。當(dāng)停止位被移出時,如果在傳送中有新數(shù)據(jù)寫入UDR中,則被裝入移位寄存器中,同時, UART的狀態(tài)寄存器USR的UDRE位(UART狀態(tài)寄存器空)被設(shè)置,直到UDR被重寫。當(dāng)沒有新的數(shù)據(jù)被寫入時,而且停止位在TXD上保持了一位的 長度,USR的TX完成標(biāo)志位TXC被設(shè)置。
當(dāng)UART的控制寄存器UCR中的TXEN位被置為1時,允許UART發(fā)送,此時PD1被作為發(fā)送線。
通過讀UDR寄存器,接收數(shù)據(jù)寄存器被訪問。接收器以16倍波特率采樣RXD引腳的信號,當(dāng)線路閑置時,一個邏輯0的采樣將被轉(zhuǎn)換為起始位的下降沿,并 且起始位的探測序列被初始化,然后,接受器在第8、9和10個采樣點采樣中,如果得到兩個或兩個以上是邏輯1,則認(rèn)為起始位是噪聲尖峰而拒絕,繼續(xù)探測下 一個1到0的轉(zhuǎn)換。如果起始位被發(fā)現(xiàn)后,開始采樣數(shù)據(jù)位,這些位也在第8、9和10個采樣點采樣,3取2作為該位的邏輯值,在采樣的同時被移入傳送寄存 器。當(dāng)停止位為邏輯0,則USR的FE(幀錯誤)標(biāo)志被置1,在讀UDR前,用戶應(yīng)檢查FE幀錯誤標(biāo)志。在讀UDR后應(yīng)檢查OR位來檢測任何的超越錯誤。
當(dāng)UART的控制寄存器UCR中的RXEN位被置為1時,允許UART數(shù)據(jù)接收,此時PD0被作為接收
線。
1.2 UART的主要寄存器及設(shè)置
UART的I/O數(shù)據(jù)寄存器UDR是兩個物理分離的寄存器分享相同的I/O地址,當(dāng)寫入UDR寄存器時,UART的發(fā)送寄存器被寫入;當(dāng)讀UDR寄存器時,讀的是UART的接收寄存器。
UART的波特率寄存器UBRR是8位可讀/寫的寄存器,用以確定波特率。用戶進行串行通信編程的重點是了解UCR及USR的使用。
1.2.1 UART控制寄存器———UCR

位7——RXCIE:RX完成中斷使能,當(dāng)該位置1且SREG中的I位設(shè)為1時,在USR中設(shè)置RXC位


將導(dǎo)致接收完成中斷被執(zhí)行;


  位6———TXCIE:TX完成中斷使能,當(dāng)該位置1且SREG中的I位設(shè)為1時,在USR中設(shè)置TXC位


將導(dǎo)致發(fā)送完成中斷被執(zhí)行;


  位5———UDRIE:UART數(shù)據(jù)寄存器空中斷使能,當(dāng)該位置1且SREG中的I位設(shè)為1時,在USR


中設(shè)置UDRIE位將導(dǎo)致發(fā)送UART數(shù)據(jù)寄存器空中斷被執(zhí)行;


  位4———RXEN:接收使能,當(dāng)該位被設(shè)置時允許UART接收,當(dāng)接收器被禁止時,TXC、OR、FE位的狀態(tài)標(biāo)志不能設(shè)置,否則,在把RXEN關(guān)閉時不能消除它們;


  位3———TXEN:發(fā)送使能,當(dāng)該位被設(shè)置時允許UART發(fā)送,如在發(fā)送數(shù)據(jù)時禁止發(fā)送器,則在移位寄存器的數(shù)據(jù)和后續(xù)UDR中的數(shù)據(jù)被全部發(fā)送完成之前,發(fā)遂器不會被禁止;


  位2———CHR9:9位字符的發(fā)送或接收,發(fā)送和接收的數(shù)據(jù)是9位數(shù)據(jù)位和1位起始位、1位停止位。第9位通過UTP中的RXB8和TXB8位分別讀和寫;


  位1———RXB8:當(dāng)CHR9被設(shè)置時,RXB8是收到數(shù)據(jù)的第9數(shù)據(jù)位;


  位0———TXB8:當(dāng)CHR9被設(shè)置時,TXB8是發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位。


1.2.2 UART狀態(tài)寄存器———USR


  USR提供各種狀態(tài)信息,其格式如下:

 


位7——RXC:UART接收完成,當(dāng)使用中斷數(shù)據(jù)接收時,接收完成中斷子程序必須讀UDR而消除


RXC,否則在子程序完成時又引起新的中斷;


  位6———TXC:UART發(fā)送完成,當(dāng)發(fā)送移位寄存的全部數(shù)據(jù)被移出后且沒有新的數(shù)據(jù)寫入UDR時,該位置1,TXC在執(zhí)行相應(yīng)的中斷向量時被硬件清除;


  位5———UDRE:UART數(shù)據(jù)寄存器空,當(dāng)寫入UDR的字符被傳送到發(fā)送移位寄存器中時該位被設(shè)置,表示發(fā)送器準(zhǔn)備新的數(shù)據(jù)發(fā)送。


  位4———FE:幀出錯,當(dāng)收到的數(shù)據(jù)的停止位為0時,該位置1,F(xiàn)E在收到的數(shù)據(jù)的停止們?yōu)?時被清除;


  位3———OR:超越出錯,當(dāng)UDR寄存器的數(shù)據(jù)沒有在新的數(shù)據(jù)被移入到接收移位寄存器之前被讀走,該位置1,即OR位被緩沖。意味著移入移位寄存器的最后數(shù)據(jù)字節(jié)不能被送到UDR中而丟失。


1.2.3 波特率發(fā)生器


依據(jù)以下等式的分頻器產(chǎn)生波特率:


BAUD=f/[16(UBRR+1)]


BAUD 表示波特率,f為晶振頻率;UBRR表示UART波特率寄存器的值(0~255)。例如,波特率確定為9600波特時,選用標(biāo)準(zhǔn)的晶振頻率1. 8432MHz(誤差為0),則可計算出UBRR的初始化值為11;波特率確定為9600波特時選用晶振頻率為3.6864MHz,UBRR的初始化值為 23。



2 AT90S8515與上位PC機的串行通信應(yīng)用



2.1 與上位PC機的硬件連接


   AT90S8515與上位PC機通信采用RS485總線,通過RS-485接收/發(fā)送器連接,使用MAXIM公司的MAX3080CPD芯片,為了使電 磁干擾及終端末匹配的連接所產(chǎn)生的反射最小,MAX3080適合速率為115Kbps以下的應(yīng)用,而且具有平衡發(fā)送,差分接收,抑制共模干擾和故障保護的 特點,適合遠距離傳送。為提高系統(tǒng)可靠性,在MAX3080與CPU之間還可增加光電耦合器6N137,更好地與上位機電氣隔離。硬件連接原理圖如圖1所 示。

2.2 與PC機的串行通信軟件設(shè)計
應(yīng)用AT90S8515的串行接口UART與PC機進行串行通信軟件設(shè)計可以采用中斷接受與查詢發(fā)送
的方式,通過判斷UART中的UDR發(fā)送數(shù)據(jù)寄存器是否為空決定是否發(fā)送,并激活接收完成中斷。
下面的程序采用查詢方式向上位PC機發(fā)送數(shù)據(jù),采用中斷方式接收數(shù)據(jù),字符數(shù)據(jù)位為8位,接受數(shù)據(jù)塊將包含數(shù)據(jù)幀幀頭及幀尾(各占一個字節(jié)),還有符合本節(jié)點的標(biāo)識碼(地址),從而提高數(shù)據(jù)接收的安全性及可靠性,并適合多個AVR微控制器與PC機通信。
選用標(biāo)準(zhǔn)的晶振頻率3.864MHz(誤差為0),波特率確定為19200波特,且用PD7引腳控制
MAX3080發(fā)送的開啟與關(guān)閉。

  



  








3 結(jié)束語



  以上的程序模塊已經(jīng)在作者的課題項目開發(fā)中加以應(yīng)用,同時對AT908535、AT90S2313等其它型號AVR單片機也完全通用。


  總之,相對以往的AT89系列單片機,以AT90S8515作為嵌入式高效微控制器,在性能上要


強得多,程序的效率高而且運行速度大大提高,開發(fā)手段也更方便。


  另外,AVR單片機的內(nèi)部又有硬件看門狗電路即看門狗定時器和看門狗定時器的控制寄存器WDTTP相相應(yīng)的看門狗指令控制,大大提高了系統(tǒng)的可靠性及安全性,因此,目前應(yīng)用高檔ATP系列單片機更適合組成工業(yè)現(xiàn)場總線控制系統(tǒng)的智能檢測及采集處理節(jié)點。



參考文獻



1 AVR8-Bit RISC-Data Sheets.ATMELCorporation[M].1997


2 AVREnhanced Risc Microcontroller Data Book[M]1997


3 宋建國.AVR單片機原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,1998

  • 上一篇: AVRATmega161在嵌入式測控網(wǎng)絡(luò)中的應(yīng)用研究
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1