新聞中心

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

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

作者: 時間:2011-01-30 來源:網絡 收藏

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

  1.2.3 波特率發(fā)生器

  依據以下等式的分頻器產生波特率: 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接收/發(fā)送器連接,使用MAXIM公司的MAX3080CPD芯片,為了使電磁干擾及終端末匹配的連接所產生的反射最小,MAX3080適合速率為115Kbps以下的應用,而且具有平衡發(fā)送,差分接收,抑制共模干擾和故障保護的特點,適合遠距離傳送。為提高系統(tǒng)可靠性,在MAX3080與CPU之間還可增加光電耦合器6N137,更好地與上位機電氣隔離。硬件連接原理圖如圖1所示。

硬件連接原理圖

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

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

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

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

程序

程序

程序

程序



關鍵詞: 收發(fā)器

評論


相關推薦

技術專區(qū)

關閉