• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 元件/連接器 > 設計應用 > RS-485收發器難題詳解

    RS-485收發器難題詳解

    作者: 時間:2020-06-17 來源:EEWORLD 收藏
    編者按:引言: USB低速設備的設計發展到現在已經有了相當的成熟度。 各家IC公司都推出了USB DEVICE端的解決方案, 一般以8 BIT CPU CORE + USB SIE為主流構架。 SH69P04是中穎電子(Sinowealth)本著豐富USB產品應用,降低USB IC成本而設計的4BIT OTP單片機, 用以開發USB DEVICE設備。

    SH69P04的功能及特點

    本文引用地址:http://www.czjhyjcfj.com/article/202006/414310.htm

    1. 和PS2端口共用

    通過寄存器實現端口和PS2端口的切換

    PS2PU = 1: 如果PS2IS = 1, 則內部PS2專用上拉電阻起作用。當需要使用端口時, 只要讓PS2IS = 0即能關閉PS2端口及其上拉電阻。


    2. 1.5KΩ可控上拉電阻

    如圖2, 有了這個1.5KΩ可控上拉電阻一方面可以節約成本, 另一方面可以實現軟開關, 確保PC認出DEVICE。

    當USB DEVICE和PC相連后由于內部1.5KΩ上拉電阻并未打開, 所以PC不認為有新的設備連接。 在打開上拉電阻前用戶可以放心的完成程序初始化及其它客戶程序, 而不必擔心需要及時響應USB總線上的信號。 這是因為如果沒有可控的上拉電阻而是直接外加, 那么當DEVICE和PC相連后, PC馬上就會知道有新的設備連接, 在一定時間后就會向DEVICE發送信號, 如果DEVICE連續幾次通訊失敗的話, PC就認為該DEVICE出錯而不會再和它通訊。

    另外結合Watch Dog可以進一步確保DEVICE的連接。 用戶可以事先計算一下整個USB初始化過程所需的時間, 并設置Watch Dog。 萬一USB初始化出錯就可以產生Watch Dog Reset, 1.5KΩ上拉就被關閉, 程序重新開始。 PC就會認為DEVICE有了一次插拔動作。程序死鎖也可以用這種方法來解決。

     圖 3

    3. 專為MOUSE設計的I/O端口

    如圖3, 原理分析時Q1.1和Q1.3是輸出方波。 實際上由于Photo Transistors是采用光敏三極管, 當光柵轉動時, 光敏三極管受到的光線也是連續變化的, 所以輸出的波形也是連續變化的。 又因為光柵無法完全阻隔光線, 所以會產生一個OFFSET電平。 實際波形如圖4。


    圖中VIH表示一旦輸入電平高于VIH, 那么MCU就認為是高電平。 VIL表示一旦輸入電平低于VIL, 那么MCU就認為是低電平。 在圖4所示的這種狀態下MCU可以很方便的讀到光柵轉動的情況。 但是由于干擾或者元器件老化等原因造成OFFSET電平發生變化, 使得輸入信號的電平無法和VIH、VIL相交(如圖5), MCU就會認為輸入的信號一直為高或一直為低。

    SH69P04為每一個MOUSE的端口提供三檔下拉電阻(如圖4)來控制OFFSET電平。 通過寄存器來選擇下拉電阻的阻值, 用以解決由于OFFSET電平的變化而引起的錯誤。

    軟件設計

    USB協議雖然很復雜, 但是MOUSE端需要編寫的程序卻十分有限。 用戶很容易就能和PC建立聯系。(Windows端HID驅動程序由操作系統提供)

    1. USB/PS2端口的監測

    第一步: 上電, delay 50ms 

    第二步: 在2ms的時間內監測D-的電平, 如果有4次為高電平, 就是PS2接口。 否則進入第三步

    第三步: 打開USB上拉電阻, delay500us, 反復監測D+和D-的電平, 直到其中有一個出現高電平。 如果D+是高電平, 則為PS2接口。 如果D-是低電平, 則進入第4步。

    第四步: 關閉USB上拉電阻, delay 100us。 如果D+/D-都為低電平, 則為USB接口。

    否則就是PS2接口。

    2. USB Enumeration過程

    整個過程有點像做測試題。 PC問, MOUSE回答。 其中關鍵是要告訴PC, 自身是一個MOUSE, 支持HID協議。 由于篇幅有限, 就不詳細列出了。

    3. 把MOUSE的信息傳給PC

    在Enumeration過程中, MOUSE會告訴PC后續X,Y,Z,按鍵這些信息的格式。 當MOUSE有動作時, 只要按這個格式把數據返回給PC就可以了。 剩下的事情PC端HID驅動程序會去完成。




    關鍵詞: RS-485收發器 USB

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 云梦县| 化德县| 东源县| 滨州市| 马关县| 尼木县| 藁城市| 来安县| 渑池县| 九龙城区| 延寿县| 隆回县| 封丘县| 温宿县| 绥德县| 行唐县| 堆龙德庆县| 天祝| 舒城县| 略阳县| 炎陵县| 普兰店市| 杭锦后旗| 南平市| 右玉县| 慈溪市| 竹北市| 鄂尔多斯市| 沧州市| 阿克陶县| 黔西| 玛沁县| 二手房| 广东省| 沙湾县| 金平| 江西省| 隆化县| 巴林左旗| 富锦市| 涟源市|