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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于1-WireTM技術的單片機單線通信的實現

    基于1-WireTM技術的單片機單線通信的實現

    作者: 時間:2012-02-20 來源:網絡 收藏

    在構成一個較大規模的應用系統中,不可避免地要采用多機系統,經常涉及到系統間的信息交換。在速率要求不高的情況下,我們希望進行的雙方占用盡可能少的端口連線。美國Dallas公司生產的數字溫度傳感器 DS1820僅用1根口線進行信息交換,該可以很方便地應用到系統間的上來。

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

    1 發送和接收

    通信的數據交換僅在1根總線上完成,對主機和從機必須有嚴格的時序要求,可以借助“時隙”傳輸來數據的發送與接收。

    如圖1(a),主機向從機發送一位信息時,先由主機將總線由高(“1”)拉低(“0”)1~15μs,然后根據發送的信息是“1”還是“0”,置總線為相應的邏輯“1”或“0”,持續時間大于45~60μs后釋放總線。從機檢測到總線由高變低后,在15~60μs的時間窗內采樣總線,若為高,則收到 “1”,否則收到“0”。主機發送一位的總時間要求大于60μs,以便為最壞情況提供足夠的時間裕量。

    當主機需要接收數據時,采用如圖1(b)的時隙,先由主機將總線拉低1~15μs,然后釋放。從機檢測到總線由高變低后置總線為邏輯“1”或“0”,持續時間不少于15μs。主機在釋放總線的15μs時間內采樣總線,以接收從機發送的“1”或“0”,同樣,要求接收

    一位的總時間不少于60μs。

    13.jpg

    由此可見,主機和從機進行通信,總是由主機發起的,即將總線由高拉低,除非被主機請求,否則從機無法主動發送數據。除了主機外,從機之間也無法進行通信。

    2 復 位

    進行通信前需要進行總線復位,可以采用如圖2的時隙來。先由主機保持總線480~960μs的低電線為“0”,持續時間為60~240μs。主機在釋放總線后檢測從機發出的應答信號,如果檢測到總線為“0”,則表示從機存在并有應答,主機就可以通過產生接收或發送時隙來控制信息傳輸。若總線上沒有從機應答或從機不存在,則主機會收到“1”。

    14.jpg

    3 通信流程

    掛接在單總線上各子系統的通信,需要分配給每個系統惟一的軟件地址,當某一個系統需要信息交換時將主動發送復位信號扮演主機角色,各從機偵聽到來自總線上的復位信號后先進行地址匹配,一旦握手成功,主從機間就可以進行數據傳輸。設從機軟件地址為8位,采用如表1所示的協議字,實現通信的流程如圖3 所示。

    15.jpg


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 富蕴县| 安庆市| 义马市| 昂仁县| 宁陵县| 合江县| 山丹县| 如皋市| 金沙县| 湘阴县| 临西县| 玉林市| 奉节县| 长岛县| 普陀区| 江华| 巫溪县| 手游| 马关县| 电白县| 五河县| 奉贤区| 遵化市| 镇原县| 宜君县| 新龙县| 华安县| 新田县| 南乐县| 徐水县| 沙河市| 潜山县| 额敏县| 三门峡市| 新巴尔虎左旗| 宁城县| 建德市| 芷江| 江津市| 邵武市| 华宁县|