《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AT90S8515的串行通信及其應用
基于AT90S8515的串行通信及其應用
摘要: 美國ATMEL公司推出的90系列單片機是增強RISC內載Flash的高性能八位單片機,通稱為AVR單片機,設計上采用低功耗CMOS技術,而且在軟件上有效支持C高級語言(用IAR系統的ICC90C編譯器編譯)及匯編語言(用ATP匯編器編譯)。
Abstract:
Key words :

  引 言

  美國ATMEL公司推出的90系列單片機是增強RISC內載Flash的高性能八位單片機,通稱為AVR單片機" title="AVR單片機">AVR單片機,設計上采用低功耗CMOS技術,而且在軟件上有效支持C高級語言(用IAR系統的ICC90C編譯器編譯)及匯編語言(用ATP匯編器編譯)。

  其中AT90S8515" title="AT90S8515">AT90S8515是功能較強的一種型號,它有40引腳PDIP和44引腳PLCC、TQFP等多種封裝形式,具有120條功能強大的指令,而且大多數執行時間為單時鐘周期,指令周期最短僅為125ns。它具有以下主要特征:片內有8K字節可下載的Flash存儲器,程序下載采用其SPI串行接口,使用壽命為1000次;32條通用I/O線及32個通用8位寄存器R0~R31,64個I/O專用寄存器;512字節的EEPROM(使用壽命為10萬次)及512字節的內部SRAM;供電電壓在VCC為4.0~6.0V內可以全靜態工作范圍為0~8MHz;提供內部及外部中斷源;帶片內晶振器的可編程看門狗定時器;并有2種可通過軟件選擇的電源節電模式:閑置模式、掉電模式;可編程的全雙工串行通信" title="串行通信">串行通信接口UART" title="UART">UART;一個8位定時器/計數器T/C0,一個16位的帶預

 

分頻及比較模式、捕獲模式及雙工8位、9位或10位的PWM輸出的定時器/計數器T/C1。本文著重介紹其片內UART在實際中的應用。

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

  1.1 串行接口UART的主要特征

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

  (1)波特率發生器可以生成任何波特率;

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

  (3)8位和9位數據;

  (4)噪聲濾波;

  (5)超越誤差的檢測;

  (6)幀錯誤檢測;

  (7)錯誤起始位檢測;

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

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

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

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

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

  1.2 UART的主要寄存器及設置

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

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

  1.2.1 UART控制寄存器———UCR

UART控制寄存器———UCR

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

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

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

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

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

 

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

  位1———RXB8:當CHR9被設置時,RXB8是收到數據的第9數據位;

  位0———TXB8:當CHR9被設置時,TXB8是發送數據的第9數據位。

  1.2.2 UART狀態寄存器———USR

UART狀態寄存器———USR

  USR提供各種狀態信息,其格式如下:

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

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

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

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

 

數據的停止位為0時,該位置1,FE在收到的數據的停止們為1時被清除;

 

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

  1.2.3 波特率發生器

  依據以下等式的分頻器產生波特率: BAUD=f/[16(UBRR+1)]

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

  2 AT90S8515與上位PC機的串行通信應用

  2.1 與上位PC機的硬件連接

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

硬件連接原理圖

 

  2.2 與PC機的串行通信軟件設計

  應用AT90S8515的串行接口UART與PC機進行串行通信軟件設計可以采用中斷接受與查詢發送的方式,通過判斷UART中的UDR發送數據寄存器是否為空決定是否發送,并激活接收完成中斷。

  下面的程序采用查詢方式向上位PC機發送數據,采用中斷方式接收數據,字符數據位為8位,接受數據塊將包含數據幀幀頭及幀尾(各占一個字節),還有符合本節點的標識碼(地址),從而提高數據接收的安全性及可靠性,并適合多個AVR微控制器與PC機通信。

  選用標準的晶振頻率3.864MHz(誤差為0),波特率確定為19200波特,且用PD7引腳控制MAX3080發送的開啟與關閉。

程序

程序

程序

程序

程序

程序

程序

程序

程序

程序

  3 結束語

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

  總之,相對以往的AT89系列單片機,以AT90S8515作為嵌入式高效微控制器,在性能上要強得多,程序的效率高而且運行速度大大提高,開發手段也更方便。

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

  參考文獻

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

  2 AVREnhanced Risc Microcontroller Data Book[M]1997

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲久热| 日韩欧美高清色码 | 亚洲精品第四页中文字幕 | 日本免费xxx | 成人公开免费视频 | 一级毛片免费不卡在线 | 亚洲色图在线观看 | 你懂的国产高清在线播放视频 | 成人高清在线观看 | 热99re久久精品精品免费 | 国产免费爽爽视频免费可以看 | 成人免费观看在线视频 | 亚洲日本va中文字幕线 | 日本三级香港三级妇三 | 久久99精品久久 | 天天在线精品视频在线观看 | 国产视频麻豆 | 欧美特级视频 | 国产精品亚洲片在线牛牛影视 | 欧美亚洲综合另类 | 天天做天天操 | 色大18成网站www在线观看 | 欧美成人午夜做受视频 | 看日本黄大片在线观看 | 首页 国产 制服 丝袜 | 永久福利盒子日韩日韩免费看 | 亚洲欧美日韩专区 | 午夜高清 | 国产小视频免费 | 国产精品欧美一区二区三区 | 国产婷婷色一区二区三区深爱网 | 一级a美女毛片 | 最黄毛片| 黄色国产一级片 | 亚洲免费人成在线视频观看 | 不卡福利视频 | 日韩天堂网 | 国产乱人伦av在线a 国产乱人伦精品一区二区 国产乱人免费视频 | 最近中文字幕大全2019 | 美女羞羞网站 | 日日日操|