基于USB接口的信號模擬器設計
引 言
本文引用地址:http://dyxdggzs.com/article/202623.htmUSB總線(xiàn)是一種高效、快速、價(jià)格低、體積小、支持熱插拔的串行通信接口,目前USB這一接口形式在電子產(chǎn)品的設計中得到了廣泛應用。本文所設計的RS485信號模擬器就是采用USB接口總線(xiàn),可以很方便與PC機進(jìn)行連接,并且USB接口可以為外界提供電源。 RS485是一種平衡方式傳輸的串行接口標準,它的電氣特性標準中有嚴格規定,但它的通信協(xié)議可以由用戶(hù)自行定義。本文將詳細討論USB總線(xiàn)信號與 RS485總線(xiàn)信號的相互轉換,及PC機終端應用軟件對USB接口芯片的各種操作。在此基礎上用戶(hù)可以根據不同需求,在終端應用軟件中自行設計通信協(xié)議。
1 總體設計
信號模擬器主要包括USB接口芯片、單片機子系統、RS485與TTL電平轉換子系統。它可以實(shí)現兩個(gè)功能:a.信號模擬器通過(guò)應用程序軟件設置串行通信參數和數據幀結構,最終輸出的信號是指定串行通信參數和數據幀格式的RS485總線(xiàn)數據,可以為采集器提供標準信號源;b.在信號模擬器內部可以實(shí)現信號自反饋功能,即將實(shí)際發(fā)送給采集器的數據通過(guò)信號模擬器內部回環(huán)電路回送給終端應用程序軟件并最終顯示出來(lái),以驗證信號模擬器發(fā)送數據是否正確。
USB接口芯片FT245R是將USB接口信號轉換成8位并行信號,由MCU讀取8位并行信號數據,然后MCU通過(guò)全雙工的串口將讀到的數據發(fā)送給 RS485電平轉換電路1,這樣輸出的信號就是滿(mǎn)足指定要求的標準RS485總線(xiàn)信號。將RS485電平轉換電路1輸出端信號反饋給RS485電平轉換電路2的輸人端,這樣可以把RS485電平轉換成TTL電平,再通過(guò)全雙工的串口進(jìn)行接收,最終將數據回送到終端應用程序軟件。信號模擬器的設計總體框圖如圖1所示。
2 硬件電路設計
2.1 USB接口芯片FT245R
FT245R由FTDI(Future Technology Devices Inte-national Ltd.)公司推出,該芯片主要完成USB串行總線(xiàn)和8位并行FIFO接口之間的相互協(xié)議轉換。整個(gè)USB通信協(xié)議全部由芯片自動(dòng)完成,開(kāi)發(fā)者無(wú)須考慮底層固件的編程。該芯片利用內部集成的時(shí)鐘電路進(jìn)行工作,無(wú)須外部提供時(shí)鐘;完全兼容USB2.O協(xié)議。它有256字節的接收緩沖區和128個(gè)發(fā)送緩沖區,可以進(jìn)行數據的大吞吐量操作。通過(guò)8位并行數據口D[O:7]和4位讀寫(xiě)狀態(tài)/控制口RXF、TXE、RD、WR就可實(shí)現與微控制器的數據交換。
下面介紹讀寫(xiě)FT245R FIFO操作時(shí)序要求。
(1)FT245R FIFO讀操作
讀操作時(shí)序如圖2所示。當RXF為低,表示當前FIFO接收緩沖區內有數據,可以執行讀操作讀取接收緩沖區數據。在RD電平由高變低,FIFO控制器將接收緩沖區中的數據輸出到8位數據端口上,MCU此時(shí)只需讀取I/O口就可以將數據取到內部數據總線(xiàn)上來(lái),再將RD信號拉高完成1字節數據的讀取。當將 FIFO接收緩沖區中的數據全部取出后,RXF被拉高表示數據為空。在RXF為高時(shí),禁止從FIFO接收緩沖區讀取數據。
(2)FT245R FIFO寫(xiě)操作
寫(xiě)操作時(shí)序如圖3所示。當TXE為低,表示當前FIFO發(fā)送緩沖區空,可以向發(fā)送緩沖區寫(xiě)入數據。在WR為高電平時(shí),MCU將8位數據D[0:7]送到并行I/O口上,在WR信號電平由高變低時(shí)數據被寫(xiě)入發(fā)送緩沖區中。當TXE為高時(shí),表示當前FIFO發(fā)送緩沖區已滿(mǎn)或者正在寫(xiě)入上一個(gè)字節,此時(shí)禁止向發(fā)送緩沖區中寫(xiě)入任何數據。MCU向FT245R寫(xiě)入數據時(shí)應確保TXE為低。
2.2 單片機子系統
單片機子系統包括單片機和上電復位芯片。本設計中采用的單片機是AT89S52。 AT89S52作為系統的中央處理器擔負著(zhù)系統和PC主機的通信、系統內各部件正常工作等重要任務(wù)。AT89S52這款單片機內部有看門(mén)狗電路,可防止程序陷入“陷阱”或跑飛。為了使單片機上電復位可靠,這里采用專(zhuān)門(mén)的復位芯片MAX708。
評論