基于AVR單片機的串行接口智能轉換器
通過以上的脈沖調(diào)頻方式的自舉升壓調(diào)節(jié),使輸出電壓穩(wěn)定在+5V。
輸出電壓由下式確定:
VOUT=Vw1+Veb+Ib×R2≈Vw1+Veb ≈ 5 V
2.2 單片機智能控制工作原理RS485通訊方式是軟件通過收、發(fā)使能信號來控制數(shù)據(jù)的分時接收與發(fā)送,使用同一對差分通訊總線實現(xiàn)雙向數(shù)據(jù)通訊的半雙工通訊方式,而RS232通訊接口不能提供這樣的使能控制信號。但可以通過單片機對主機PC-TXD信號的監(jiān)測,準確計算出傳送一幀數(shù)據(jù)的時間,智能產(chǎn)生收、發(fā)使能信號控制數(shù)據(jù)的分時接收與發(fā)送,實現(xiàn)數(shù)據(jù)的半雙工通訊。以AT90S2343低功耗單片機為核心的串行口智能轉換器的具體電路如圖3所示。
單片機對傳送一幀數(shù)據(jù)的時間的識別方法如下:當單片機監(jiān)測到主機發(fā)送數(shù)據(jù)的起始位時,開始測量PC-TXD信號的每個脈沖的脈沖寬度,計算出對應的波特率,若均屬于通用波特率集合,它們中的最高波特率即是通訊波特率。否則,該脈沖寬度是發(fā)送兩幀數(shù)據(jù)的間隔時間,電平負躍變的時刻是起始位的開始時刻,開始重新測量每個脈沖的脈沖寬度。當通訊波特率確定后,檢測第十位的電平狀態(tài),若是低電平,則可確定是11位通訊方式。否則是10位通訊方式。由通訊波特率和通訊方式計算出傳送一幀數(shù)據(jù)的時間。
通訊接口接收、發(fā)送數(shù)據(jù)的智能控制過程如下:每當監(jiān)測到主機發(fā)送數(shù)據(jù)的起始位時,單片機輸出收、發(fā)使能信號(RE=1、DE=1),控制收、發(fā)電路禁止接收、允許發(fā)送數(shù)據(jù),主機數(shù)據(jù)發(fā)送到RS485通訊總線上,同時定時器開始計時。當計時時間等于發(fā)送一幀數(shù)據(jù)的時間時,單片機輸出收、發(fā)使能信號(RE=0、DE=0),控制收、發(fā)電路允許接收、禁止發(fā)送數(shù)據(jù)。此時,主機可以接收RS485通訊總線上的從機數(shù)據(jù)。當單片機又監(jiān)測到主機發(fā)送數(shù)據(jù)的起始位時,重復上述的發(fā)送過程。
在通訊過程中,波特率測量和收、發(fā)數(shù)據(jù)智能控制必須同步進行,否則就會造成通訊數(shù)據(jù)的丟失。
為適應高速通訊的要求,電路中采用美國Atmel 公司的AT90SL2343單片機。它是目前最新的單片機系列之一,其突出特點是執(zhí)行速度高,片內(nèi)硬件資源豐富。使用CPU內(nèi)部的電源監(jiān)測和可編程看門狗定時器,使電路具有較強的抗干擾能力。
單片機I/O端口的分配和功能:PB3輸入,監(jiān)測主機PC-TXD信號;PB0輸出,接收使能信號;PB4輸出,發(fā)使能信號;PB2輸入,由K1設置雙工或半雙工通訊方式。
3 軟件設計
3.1 程序流程框圖
串行口智能擴展卡的程序流程圖如圖4所示。
3.2 半雙工通訊方式的軟件設計
在RS485半雙工通訊方式下,首先允許接收、禁止發(fā)送數(shù)據(jù)。在檢測到PC-TXD信號的數(shù)據(jù)起始位之后,通訊接口禁止接收、允許發(fā)送數(shù)據(jù),并開始計時。通過檢測數(shù)據(jù)信號的每個脈沖寬度,確定其波特率和數(shù)據(jù)的發(fā)送位數(shù),進而計算出每幀數(shù)據(jù)允許發(fā)送的時間。當計時時間大于或等于該時間時,該通訊接口禁止發(fā)送并允許接收數(shù)據(jù)。在接收狀態(tài)下,CPU重復檢測發(fā)送數(shù)據(jù)的起始位。當檢測到發(fā)送數(shù)據(jù)的起始位時,重復上述的數(shù)據(jù)發(fā)送的控制過程。
評論