新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT90S8515的串行通信及其應用

基于AT90S8515的串行通信及其應用

作者: 時間:2011-01-30 來源:網(wǎng)絡 收藏

引 言

本文引用地址:http://2s4d.com/article/172998.htm

  美國ATMEL公司推出的90系列單片機是增強RISC內(nèi)載Flash的高性能八位單片機,通稱為AVR單片機,設計上采用低功耗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位的帶預分頻及比較模式、捕獲模式及雙工8位、9位或10位的PWM輸出的定時器/計數(shù)器T/C1。本文著重介紹其片內(nèi)UART在實際中的應用。

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

  1.1 串行接口UART的主要特征

  AT90S8515帶有一個全雙工的通用異步(UART),特征如下:

 ?。?)波特率發(fā)生器可以生成任何波特率;

  (2)在XTAL低頻率下有高的波特率;

  (3)8位和9位數(shù)據(jù);

 ?。?)噪聲濾波;

 ?。?)超越誤差的檢測;

 ?。?)幀錯誤檢測;

 ?。?)錯誤起始位檢測;

 ?。?)3個獨立的中斷,即TX完成,TX數(shù)據(jù)寄存器空,RX完成。

  其數(shù)據(jù)發(fā)送通過把被傳送的數(shù)據(jù)寫入UART的I/O數(shù)據(jù)寄存器UDR來初始化,然后數(shù)據(jù)從UDR傳送到移位寄存器中。在波特率時鐘加載到移位寄存器的傳送操作時,起始位從TXD引腳移出,然后是數(shù)據(jù)最低位在先。當停止位被移出時,如果在傳送中有新數(shù)據(jù)寫入UDR中,則被裝入移位寄存器中,同時,UART的狀態(tài)寄存器USR的UDRE位(UART狀態(tài)寄存器空)被設置,直到UDR被重寫。當沒有新的數(shù)據(jù)被寫入時,而且停止位在TXD上保持了一位的長度,USR的TX完成標志位TXC被設置。

  當UART的控制寄存器UCR中的TXEN位被置為1時,允許UART發(fā)送,此時PD1被作為發(fā)送線。

  通過讀UDR寄存器,接收數(shù)據(jù)寄存器被訪問。接收器以16倍波特率采樣RXD引腳的信號,當線路閑置時,一個邏輯0的采樣將被轉(zhuǎn)換為起始位的下降沿,并且起始位的探測序列被初始化,然后,接受器在第8、9和10個采樣點采樣中,如果得到兩個或兩個以上是邏輯1,則認為起始位是噪聲尖峰而拒絕,繼續(xù)探測下一個1到0的轉(zhuǎn)換。如果起始位被發(fā)現(xiàn)后,開始采樣數(shù)據(jù)位,這些位也在第8、9和10個采樣點采樣,3取2作為該位的邏輯值,在采樣的同時被移入傳送寄存器。當停止位為邏輯0,則USR的FE(幀錯誤)標志被置1,在讀UDR前,用戶應檢查FE幀錯誤標志。在讀UDR后應檢查OR位來檢測任何的超越錯誤。

  當UART的控制寄存器UCR中的RXEN位被置為1時,允許UART數(shù)據(jù)接收,此時PD0被作為接收線。

  1.2 UART的主要寄存器及設置

  UART的I/O數(shù)據(jù)寄存器UDR是兩個物理分離的寄存器分享相同的I/O地址,當寫入UDR寄存器時,UART的發(fā)送寄存器被寫入;當讀UDR寄存器時,讀的是UART的接收寄存器。

  UART的波特率寄存器UBRR是8位可讀/寫的寄存器,用以確定波特率。用戶進行串行通信編程的重點是了解UCR及USR的使用。

  1.2.1 UART控制寄存器———UCR

UART控制寄存器———UCR

  位7——RXCIE:RX完成中斷使能,當該位置1且SREG中的I位設為1時,在USR中設置RXC位將導致接收完成中斷被執(zhí)行;

  位6———TXCIE:TX完成中斷使能,當該位置1且SREG中的I位設為1時,在USR中設置TXC位將導致發(fā)送完成中斷被執(zhí)行;

  位5———UDRIE:UART數(shù)據(jù)寄存器空中斷使能,當該位置1且SREG中的I位設為1時,在USR中設置UDRIE位將導致發(fā)送UART數(shù)據(jù)寄存器空中斷被執(zhí)行;

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

  位3———TXEN:發(fā)送使能,當該位被設置時允許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:當CHR9被設置時,RXB8是收到數(shù)據(jù)的第9數(shù)據(jù)位;

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

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

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

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

  位7——RXC:UART接收完成,當使用中斷數(shù)據(jù)接收時,接收完成中斷子程序必須讀UDR而消除RXC,否則在子程序完成時又引起新的中斷;

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

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

  位4———FE:幀出錯,當收到的

數(shù)據(jù)的停止位為0時,該位置1,F(xiàn)E在收到的數(shù)據(jù)的停止們?yōu)?時被清除;


上一頁 1 2 3 下一頁

關(guān)鍵詞: 收發(fā)器

評論


相關(guān)推薦

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

關(guān)閉