<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于USB接口的信號模擬器設計

基于USB接口的信號模擬器設計

作者: 時(shí)間:2009-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏

 引 言

本文引用地址:http://dyxdggzs.com/article/202623.htm

  總線(xiàn)是一種高效、快速、價(jià)格低、體積小、支持熱插拔的串行通信,目前這一形式在電子產(chǎn)品的設計中得到了廣泛應用。本文所設計的RS485就是采用總線(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。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: USB 接口 信號模擬器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>