DS2450轉換器的接口設計原理
2 轉換與讀/寫(xiě)控制
2.1 轉換控制
DS2450的轉換控制首先通過(guò)其DATA端串行送出轉換命令字[3CH],然后送出通道選擇字和預置控制字,最后啟動(dòng)A/D轉換器進(jìn)行轉換。DS2450的通道選擇字和預置控制字的各位含義如表1所列。
在通道選擇字中,對應位為1表示該通道參與轉換。在同時(shí)選擇多個(gè)通道時(shí),其轉換順序為A→B→C→D,未選中的通道將被跳過(guò)。其A/D轉換的時(shí)間可近似為:
轉換時(shí)間=通道數×轉換精度位數×80μs+160μs。
當所有通道轉換完畢后,系統將發(fā)出讀存儲器命令以獲得轉換結果和對應的狀態(tài)。
預置控制字可用于對相應通道的轉換結果存儲器進(jìn)行預置。當SET、CLR=00時(shí),為不預置,即保持上次轉換值;當SET、CLR=01時(shí),轉換前預置為全0;當SET、CLR=10時(shí),預置為全1;而SET、CLR=11為無(wú)效組合。
2.2 存儲器讀/寫(xiě)控制
讀存儲器命令可用于讀取轉換結果、工作狀態(tài)和門(mén)限設定值等??偩€(xiàn)管理器首先送出讀存儲器命令字[AAH],然后送出兩字節的16位“起始數據”存儲器地址,并在總線(xiàn)上讀取一個(gè)字節的數據后,地址自動(dòng)加1,緊接著(zhù)讀取下一個(gè)數據;當一頁(yè)讀完后,隨后讀取的兩個(gè)字節為內部自動(dòng)產(chǎn)生的16位循環(huán)冗余校驗碼,它是由前面送出的命令字、地址和讀取的存儲器數據并根據下列表達式生成的:
CRC16=X16+X15+X2+1
寫(xiě)存儲器命令主要針對第1頁(yè)和第2頁(yè)存儲器,其目的是寫(xiě)入各通道的工作方式控制字和對應通道的高、低門(mén)限設定值??偩€(xiàn)管理器首先送出寫(xiě)存儲器命令字[55H],然后送出兩字節的16位存儲器起始地址,接著(zhù)逐個(gè)送出要寫(xiě)入的數據,其地址也是自動(dòng)加1。若在剛寫(xiě)完一個(gè)數據后執行讀操作,讀出的數據應剛好為前一次寫(xiě)入的數據,可利用這一特點(diǎn)對寫(xiě)入和讀出的數據進(jìn)行比較,以判斷傳輸的正確性。
如果在軟件校驗時(shí)發(fā)現讀/寫(xiě)中的傳輸錯誤,則必須對DS2450芯片進(jìn)行初始化,并重新進(jìn)行讀/寫(xiě)操作。
2.3 DS2450的工作時(shí)序
DS2450的一線(xiàn)工作協(xié)議流程是:初始化→ROM功能命令→存儲器讀寫(xiě)/轉換控制功能命令→傳輸數據。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,圖2給出了普通工作模式下的工作時(shí)序。
圖3是MCS-51系列單片機與DS2450的典型連接電路。其中DS2450的DATA端接AT89C51的P1.0,該電路采用外接電源供電方式,其DS2450的VCC端用 5V電源供電。此例僅對D通道進(jìn)行A/D轉換,AIN-D接模擬信號輸入;AIN-A和AIN-B外接上拉電阻到電源,其輸出可作為D通道的高、低限報警信號。
如果單片機系統所用的晶振頻率為12MHz,那么可根據DS2450的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序來(lái)分別編寫(xiě)三個(gè)子程序:其中INIT為初始化子程序,可用于發(fā)送復位脈沖并接收存在脈沖;WRITE為寫(xiě)(命令或數據字節)子程序;READ為讀數據子程序。所有要讀寫(xiě)的命令或數據字節均被放在A(yíng)寄存器中。
通過(guò)主機控制DS2450來(lái)完成A/D轉換一般要經(jīng)過(guò)以下幾個(gè)步驟:初始化、發(fā)ROM功能命令和相應的64位光刻ROM數據、選中特定芯片、寫(xiě)入工作方式控制字和高/低限門(mén)限值、發(fā)轉換控制命令、讀取轉換值及狀態(tài)等。
如果將D通道設定為5.1V輸入范圍,轉換精度為12位,高報警門(mén)限為3.0V(96H),低報警門(mén)限為2.0V(64H),并將通道A和通過(guò)B作為報警輸出,最后將轉換結果放在30H和31H處,那么其子程序CTLAD的具體程序清單如下:
評論