單片機RS-485多機通訊的實現(xiàn) 尹 紅 唐 煜 摘 要 本文介紹一種能利用RS-485電氣特性和簡單的結構方式,采用自定義串行通信協(xié)議,實現(xiàn)單片機RS-485多機通訊的方法和技巧。 |
圖1 SN75176芯片及其邏輯關系
3 RS-485方式構成的多機通信原理 |
圖2 采用RS-485構成的多機通訊原理框圖 在總線末端接一個匹配電阻,吸收總線上的反射信號,保證正常傳輸信號干凈、無毛刺。匹配電阻的取值應該與總線的特性阻抗相當。 |
圖3 串行口模式3時序圖 單片機在串行口發(fā)送數(shù)據(jù)時,只要將8位數(shù)據(jù)位傳送完畢,TI標志即建立,但此時應發(fā)送的第九位數(shù)據(jù)位(若發(fā)送地址幀時)和停止位尚未發(fā)出。如果在這是關閉發(fā)送控制,勢必造成發(fā)送幀數(shù)據(jù)不完整。如果單片機多機通訊采用較高的波特率,幾條操作指令的延時就可能超過2位(或1位)數(shù)據(jù)的發(fā)送時間,問題或許不會出現(xiàn)。但是如果采用較低波特率,如9600,發(fā)送一位數(shù)據(jù)需100μs左右,單靠幾條操作指令的延時遠遠不夠,問題就明顯地暴露出來。接收數(shù)據(jù)時也同樣如此,單片機在接收完8個數(shù)據(jù)位后就建立起RI信號,但此時還未接收到第九位數(shù)據(jù)位(若接收地址幀時)和停止位。所以,接收端必須延時大于2位數(shù)據(jù)位的時間(1位數(shù)據(jù)位時間=1/波特率),再作應答,否則會發(fā)生總線沖突。 |
圖4 程序流程圖 注:延時T秒的取值 作者簡介:尹 紅 工程師。主要從事計算機應用和數(shù)控產(chǎn)品的研究和開發(fā)工作 作者單位:中國科學院成都計算機應用研究所 四川。成都(610041)
|