新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 一線式A/D轉換器DS2450的原理與應用

        一線式A/D轉換器DS2450的原理與應用

        作者: 時間:2009-09-07 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/188675.htm

        3與微處理器的典型連接圖

        預置控制字可以對相應通道的轉換結果存儲器進行預置。SET、CLR=00,不預置,保持上次轉換值;SET、CLR=01,轉換前預置為全0;SET、CLR=10,預置為全1;SET、CLR=11,無效組合。
        4.2存儲器讀/寫控制
        讀存儲器命令用于讀取轉換結果、工作狀態、門限設定值等。總線管理器首先送出讀存儲器命令字[AAH],然后送出兩字節的16位“起始數據”存儲器地址,從總線上讀取一個字節的數據后,地址自動加1,可緊接著讀取下一個數據;當一頁讀完后,隨后讀取的兩個字節為內部自動產生的16位循環冗余校驗碼,它由前面送出的命令字、地址、讀取的存儲器數據,根據表達式CRC16=X16+X15+X2+1生成,對校驗碼生成和應用的詳細資料可參閱相關文獻。
        寫存儲器命令主要針對第1頁和第2頁的存儲器,目的是寫入各通道的工作方式控制字和對應通道的高、低門限設定值。總線管理器首先送出寫存儲器命令字[55H],然后送出兩字節的16位存儲器起始地址,接著逐個送出要寫入的數據,其地址也是自動加1。若在剛寫完一個數據后執行讀操作,讀出的數據應剛好為前一次寫入的數據,可利用這一特點對寫入和讀出的數據進行比較,以判斷傳輸的正確性。
        如果通過軟件校驗,發現了讀/寫中的傳輸錯誤,則必須對芯片進行初始化,并重新進行讀寫操作。
        4.3的工作時序
        的一線工作協議流程是:初始化→ROM功能命令→存儲器讀寫/轉換控制功能命令→傳輸數據。其工作時序包括初始化時序、寫時序和讀時序,在普通速度工作模式下,如圖2(a)(b)(c)所示。
        初始化時序包括總線管理器(主機)發出的復位脈沖和DS2450反饋送出的存在脈沖兩部分,存在脈沖告訴主機DS2450在線且已準備好;讀/寫時序規定了在DS2450的DATA端串行讀寫數據位時的時序配合要求。
        5DS2450與單片機的典型接口設計
        圖3以MCS-51系列單片機為例,示出DS2450與微處理器的典型連接。其DATA端接AT89C51的P1.0,采用外接電源供電方式,其VCC端用5V電源供電。此例中僅對D通道進行A/D轉換,AIN-D接模擬信號輸入;AIN-A,AIN-B外接上拉電阻器和電源,其輸出作為D通道的高、低限報警。
        假設單片機系統所用的晶振頻率為12MHz,根據DS2450的初始化時序、寫時序和讀時序,分別編寫了3個子程序:INIT為初始化子程序,發送復位脈沖并接收存在脈沖;WRITE為寫(命令或數據字節)子程序,READ為讀數據子程序。所有要讀寫的命令或數據字節均放在A寄存器中(限于篇幅,略去源程序,有興趣者可向作者索取)。
        主機控制DS2450完成A/D轉換一般必須經過以下幾個步驟:初始化使DS2450準備好、發ROM功能命令和相應的64位光刻ROM數據選中特定芯片、寫入工作方式控制字和高/低限值、發轉換控制命令、讀取轉換值及狀態。
        例如,將D通道設定為5.1V輸入范圍、轉換精度為12位、高報警門限為3.0V(96H)、低報警門限為2.0V(64H)、通道A和B作為報警輸出、轉換結果放在如下30H和31H的子程序CTLAD中。
        ;--------------------------
        CTLAD:LCALLINIT;發復位脈沖并接收存在脈沖
        MOVA,#0CCH
        LCALLWRITE;發“跳過ROM”命令
        ;設置4個通道工作方式控制字,寫入存儲器地址從0008H開始
        FSKZ:MOVA,#55H
        LCALLWRITE;發“寫存儲器”命令
        MOVA,#08H
        LCALLWRITE;發低8位地址
        MOVA,#00H
        LCALLWRITE;發高8位地址
        MOVA,#0C0H
        ;A通道漏極開路數字輸出方式
        LCALLWRITE;發A通道工作方式低字節
        MOVA,#00H
        ;與報警、輸入范圍等設置無關
        LCALLWRITE;發A通道工作方式高字節
        MOVA,#0C0H
        ;B通道漏極開路數字輸出方式
        LCALLWRITE;發B通道工作方式低字節
        MOVA,#00H
        ;與報警、輸入范圍等設置無關
        LCALLWRITE;發B通道工作方式高字節
        MOVA,#01H
        ;C通道不用,可隨意設置
        LCALLWRITE;發C通道工作方式低字節
        MOVA,#00H
        ;C通道不用,可隨意設置
        LCALLWRITE;發C通道工作方式高字節
        MOVA,#0CH
        ;D通道12位A/D轉換方式
        LCALLWRITE;發D通道工作方式低字節
        MOVA,#0DH
        ;5.1V輸入范圍,允許高低限報警
        LCALLWRITE;發D通道工作方式高字節
        ;設置D通道高/低限值報警值,寫入存儲器地址從0016H開始
        BJSZ:LCALLINIT;發復位脈沖并接收存在脈沖
        MOVA,#0CCH
        LCALLWRITE;發“跳過ROM”命令
        MOVA,#55H
        LCALLWRITE;發“寫存儲器”命令
        MOVA,#16H
        LCALLWRITE;發低8位地址
        MOVA,#00H
        LCALLWRITE;發高8位地址
        MOVA,#64H
        ;低門限報警值2.0V(64H)
        LCALLWRITE;送D通道低門限存儲器
        MOVA,#96H
        ;高門限報警值3.0V(96H)
        LCALLWRITE
        ;送轉換控制字,啟動A/D轉換。
        QDZH:LCALLINIT;發復位脈沖并接收存在脈沖
        MOVA,#0CCH
        LCALLWRITE;發“跳過ROM”命令
        MOVA,#3CH
        LCALLWRITE;發“轉換控制”命令字
        MOVA,#08H
          ;僅D通道參與轉換
        LCALLWRITE;發通道選擇控制字
        MOVA,#40H
          ;D通道轉換前預置為全0
        LCALLWRITE;發預置數據控制字
        ;讀取D通道轉換結果,放在31H、30H
        RDDT:LCALLINTI;發復位脈沖并接收存在脈沖
        MOVA,#0CCH
        LCALLWRITE;發“跳過ROM”命令
        MOVA,#0AAH
          LCALLWRITE;發“讀存儲器”命令字
        MOVA,#06H
        LCALLWRITE;發低8位地址
        MOVA,#00H
        LCALLWRITE;發高8位地址
        LCALLREAD
        MOV30H,A
          ;低位轉換結果放在30H
          LCALLREAD
        MOV31H,A
          ;高位轉換結果放在31H
        RET
        ……
        如果一線上掛接多個DS2450和其他一線式接口芯片、采用寄生電源供電方式、工作在超速模式、通信中進行校驗,則子程序CTLAD的編寫就要復雜一些,限于篇幅,這一部分不再詳述,請參閱文獻[1][2]的相關內容。


        上一頁 1 2 下一頁

        關鍵詞: 2450 DS 轉換器 原理

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乌兰察布市| 六枝特区| 长沙县| 额尔古纳市| 兰西县| 日土县| 临江市| 黎川县| 郸城县| 广东省| 平果县| 百色市| 舞钢市| 大庆市| 二连浩特市| 瓦房店市| 甘南县| 洛浦县| 博白县| 祁门县| 都兰县| 新建县| 延川县| 集贤县| 汶川县| 英超| 济阳县| 化德县| 新余市| 兴文县| 西吉县| 安泽县| 齐齐哈尔市| 紫金县| 绥中县| 靖宇县| 浮山县| 新疆| 扎鲁特旗| 阜阳市| 泰州市|