劉 瓊
(湖南工業(yè)職業(yè)技術學院,湖南長沙,410208)
模擬量傳感器發(fā)出的是連續(xù)信號。在數據采集系統(tǒng)的傳統(tǒng)領域中,傳感器的相關配置數據和校正參數等信息之所以采用手工輸入的方式,是為了提高處理傳感器輸出信號的信效度,但其結果仍差強人意;而依據 IEEE1451標準配置了 TEDS(Transducer Electronic Data Sheets,傳感器電子數據表)的傳感器具有諸多優(yōu)點:無需手工數據輸入能縮短配置時間;以電子表格的方式存儲數據使可靠性更高;細致的校準信息保證了測量精度;避免了書面的數據表格存檔而簡化資源管理。
IEEE1451智能傳感器接口標準族規(guī)定了智能傳感器連接到MCU、儀表顯示系統(tǒng)和現(xiàn)場測控網絡的一系列子標準,提供了相應的有線傳輸或無線傳輸協(xié)議。
現(xiàn) 行 的 IEEE 1451由 IEEE1451.0~IEEE1451.7等八個子標準組成。它可以分為面向硬件接口與面向軟件接口兩大類。其整體框架和各子標準間的關系如圖1所示。軟件接口類主要由IEEE 1451.0和IEEE 1451.1組成,通過面向對象模型定義了一套軟件接口規(guī)范,使智能傳感器能夠順利地接入不同測控網絡;同時,為了增強IEEE 1451標準族子標準之間的互操作性,還另外定義了一個電子數據表和相應的通信協(xié)議。余下的IEEE 1451.2~IEEE1451.7則歸于硬件接口部分,其詳細定義了智能傳感器的具體應用。IEEE1451.2標準主要針對點對點的情形(如UART/RS-232/RS-422/RS-485)。IEEE1451.3標準主要用于類似家庭電話線聯(lián)盟通信協(xié)議的點對多點分布式智能傳感器系統(tǒng)的同步數據采集與通信。IEEE1451.4標準主要針對類似1-wire通信協(xié)議的模擬量傳感器通信協(xié)議,不僅支持數字接口對電子數據表中的內容進行讀寫,而且支持模擬接口對現(xiàn)場儀器的接入。IEEE 1451.5標準主要規(guī)定了無線網絡傳感器接口特征,目前支持WiFi、藍牙、ZigBee協(xié)議。IEEE1451.6標準主要是規(guī)定本質安全系統(tǒng)和非本質安全系統(tǒng)應用要創(chuàng)建一個以CaNopen協(xié)議為基礎的傳感器接口。最后,IEEE1451.7標準主要規(guī)定RFID接口規(guī)范。
圖1 IEEE 1451標準的整體框架和各子標準間的關系
傳感器電子數據表TEDS技術是IEEE1451標準的關鍵技術。子標準1451.4構建了一個通用的操作方法,在傳統(tǒng)模擬傳感器中增設可存放TEDS的存儲器,增設串行數字接口后,使之與模擬接口混合在一起,再通過已嵌入的TEDS可對傳統(tǒng)模擬傳感器進行標識,即可與傳統(tǒng)的模擬儀器及接口兼容,使“即插即用”的概念延伸到傳統(tǒng)模擬傳感器中。
IEEE 1451.4的TEDS以IEEE 1451.2的TEDS為基礎,對TEDS進行重新定義,以使存儲單元最小化。TEDS應包含系統(tǒng)對傳感器進行識別認證、校正操作、連接要求及傳感器數據的正確使用方法的信息,一般應有:生產廠商的信息、模塊及版本編號、產品ID號、靈敏度、測量范圍、電氣輸出要求、功率大小、物理量單位、校準維護參數、位置坐標以及用戶私有數據等。對傳感器的TEDS進行配置有兩種可行方案。一種方案是TEDS駐留在嵌入式的EEPROM中;另一種方案是TEDS根本沒在傳感器中,而是以文檔形式存放在能利用網絡訪問的數據庫或本地計算機內,即虛擬TEDS,這樣無須內置EEPROM也能實現(xiàn)TEDS的功能。本文使用了嵌入式的EEPROM。精確定義TEDS中的每一位是TEDS作用的前提。由于不同類型的傳感器所要求的參數不同,因此標準TEDS每位的內容無法統(tǒng)一定義,可采用模板對傳感器所需參數進行定義和描述?;镜腡EDS可按表1統(tǒng)一的格式定義。硬件系統(tǒng)上電復位或被請求,TEDS就加載到系統(tǒng)。系統(tǒng)中的傳感器可以直接被替換而不需要更改任何設置,因此TEDS簡化了傳感器的安裝和維護。
表1 基本TEDS結構
4.1認證模塊硬件設計
DS2430A是Maxim公司推出的256位1-Wire總線的EEPROM,具有3引腳TO-92小體積封裝形式或6引腳TSOC表面貼封裝。DS2430帶有一個由工廠光刻的64位注冊碼,其中包括:8位CRC校驗碼、48位唯一序列碼和8位家族碼(14h)。注冊碼為每個器件提供了一個保證唯一的認證標識,確保每個器件的絕對可追溯性,當有多個DS2430同時掛接在1-Wire總線上并形成本地網絡時,可作為設備部件的節(jié)點地址使用。數據按照1-Wire協(xié)議串行傳送,僅需一條數據線和一條地線。
自我標識能力是傳統(tǒng)傳感器智能化的基本要求,作為信息存取的載體還必須結構簡單,通信方便可靠。DS2430體積小,重量輕,僅使用1根線進行通信,適合作為TEDS信息存取的載體。將DS2430植入傳感器內部,傳感器就具有了質詢—認證的能力。圖2為傳感器模塊硬件框圖。
圖2 傳感器認證模塊硬件框圖
4.2 質詢—認證功能的軟件實現(xiàn)
質詢—認證過程,重點在于實時搜索檢測1-Wire總線上的DS2430的注冊碼。找到相應的DS2430,就可從其EEPROM中讀出TEDS中的信息。二叉樹路徑搜索算法,是查詢DS2430注冊碼最科學的方法。按右分支對應編碼1,左分支對應編碼0的原則,在一棵二叉樹同根節(jié)點到某個葉子節(jié)點的64條邊上分布64位注冊碼于二叉樹中每一節(jié)點??偩€上所有ROM注冊碼的搜索過程就是依相關算法將該二叉樹由根節(jié)點到全部葉子節(jié)點的所有“路徑”都掃查一遍。
按照1-Wire總線的特性,從機之間為“線與”的關系。當主機發(fā)出搜索命令后,總線上的所有從機同時發(fā)送自身ROM編碼中的最低有效位(即家族代碼最低位),結果相當于全部LSB(最低有效位)的邏輯與;主機讀入從機發(fā)送的第n位數據的原碼后,接著啟動下一位,然后從機發(fā)送第n位數據的取反值,主機再讀入第n位數據的取反值;從兩次讀入的情況就能對ROM編碼的第n位做出判斷(如表2所示)。
表2 ROM編碼第n位的判斷情況
智能傳感器的認證標識具有唯一性。搜索過程就是按照搜索算法流程對64位ROM注冊碼以"讀入兩位,寫出一位"的模式進行檢測,對主機發(fā)回的指定位a和從機ROM碼當前位的值進行逐一對比,找到兩相匹配的值。如果二者相匹配,則該從機ROM碼繼續(xù)參與搜索;其余63位ROM碼的當前位值因與主機發(fā)回的那個指定位a不匹配,只能進入等待狀態(tài)。依此原理,選用不同的路徑,在后續(xù)搜索過程查找其他從機器件的ROM碼以區(qū)分64位ROM注冊碼。
圖4給出了參照二叉樹路徑搜索一條1-Wire總線所有器件64位的ROM注冊碼的搜索算法流程,采用“左子樹優(yōu)先”的原則。下面結合表2闡述搜索算法的實現(xiàn)細節(jié),搜索到的編碼保存于ROMCODE數組。
由表2可知,四種不同的2bit組合將在搜索過程中出現(xiàn),下面由易到難進行討論研究:
①“11”表明總線上無從機,主機執(zhí)行下面的指令后直接返回:if(bit_1==1&&bit_2==1)return 1。
②“01”表明未被屏蔽器件的ROM編碼當前位均為0,這些器件余下的編碼位全部分布于左左子樹,故置ROMCODE[n] =0,隨后主機向總線寫0,使為0的從機繼續(xù)通信,搜索左子樹,并屏蔽為1的從機。
③“10”表明未被屏蔽器件的ROM編碼當前位均為1,這些器件余下的編碼位全部分布于右子樹,故置ROMCODE[n] =1,隨后主機向總線寫1,使為1的從機繼續(xù)通信,搜索右子樹,并屏蔽為0的從機。
上述“01”和“10”組合情況處理的示意性代碼如下:if(a_bit!=b_bit){ROMCODE[n] =a_bit;Write_DQ(a_bit);}
④“00”表明未被屏蔽器件的ROM注冊碼當前位有0和1,是最為繁瑣的一種情況,因為當前位出現(xiàn)左子樹與右子樹均存在的搜索分支。第一次搜索從器件的注冊碼時,如果左子樹和右子樹均存在,則需要記錄該分叉結點的深度,并搜索左子樹。當搜索層次達到64時,獲得一個從器件的注冊碼,并取出該搜索路徑最后的分叉結點的深度,接著主機執(zhí)行第二次搜索過程。在該搜索過程中,如果結點的深度值大于最后一個分叉結點的深度,按照前述“左子樹優(yōu)先”的原則,可認為當前位為0,并向總線寫入此值,對左子樹進行搜索;如果結點的深度值小于最后一個分叉結點的深度,則要根據上次搜索最后一個分叉結點注冊碼的相應位果是否為0來決定是否記錄深度值,并向總線發(fā)送這位;如果結點的深度值等于最后一個分叉結點的深度,說明“左子樹已搜索完”,則當前位為1,并向總線寫入此值,對右子樹進行搜索。這樣,每搜索到一個深度為64的葉子結點,就會得到一個從器件的注冊碼,一直搜索到記錄中沒有分叉結點為止。
搜索算法流程圖(見圖3),ROMCODE[n] 表示64位的變量存放器件的ROM注冊碼,Level記錄當前分支結點的位置,Last_Level記錄前次搜索的最后分支的結點位置,n為二叉樹當前層序號,也表示搜索到的位序號。
圖3 所有ROM注冊碼的搜索算法流程
搜索傳感器TEDS中的注冊碼是一個實現(xiàn)即插即用技術的途徑,當設備每次上電時,主機能對傳感器進行動態(tài)管理。對于更改或新增設的傳感器,其注冊碼都能被主機動態(tài)地獲取,從而可以在數據庫中添加此傳感器的記錄。對于系統(tǒng)中撤銷的傳感器,由于主機沒有檢測到它的注冊碼,所以可在數據庫中清除此傳感器的記錄。
根據傳感器在即插即用中認證的要求,設計了3個DS2430作為3個傳感器TEDS的存儲器,并與微控制器連接的Proteus仿真實例,如圖4所示??梢愿鶕嶋H需要,在每片DS2430中存儲系統(tǒng)所有傳感器的基本信息,并且存儲TEDS的所有內容,以便主機處理。通過運行測試,驗證了本文提出的注冊碼搜索算法及智能傳感器TEDS的可行性和可靠性。
圖4 智能傳感器即插即用認證仿真
[1] Institute of Electrical and Electronics Engineers.IEEE Standard for a Smart Transducer Interface for Sensors and Actuators-Common Functions,Communication Protocols,and Transducer Electronic Data Sheet(TEDS)Formats[S] .New York:I EEE Std1451.0-2007,2007.
[2] Maxim公司DS2430芯片手冊.http://datasheets.maximintegrated.com/en/ds/DS2430.pdf,2011.
[3] 蔡東陽,彭玉君,武建安等.基于TEDS的分布式電學信號測量控制系統(tǒng)設計[J] .科學技術與工程,2013,9(3):2532~2537.
[4] 葉湘濱,李文,楊雪,等.“即插即用”智能變送器模塊的設計與實現(xiàn)[J] .儀表技術與傳感器,2009,10(10):28~30.
[5] 葉廷東,黃國健.IEEE1451智能傳感器多傳感信息自校正方法研究[J] .傳感技術學報,2013,26(2):211~215.
[6] 邵鶴帥.TEDS技術在傳感器智能化中的應用研究[J] .科學技術與工程,2011,11(3):609~611.
[7] 彭偉.單片機C語言程序設計實訓100例[M] .北京:北京航天航空大學出版社,2012.
[8] 李琦,蔡立兵.基于IEEE1451標準的智能傳感器設計與實現(xiàn)[J] .電子技術應用,2012,38(1):17~20.
[9] 彭偉.1-Wire總線器件ROM搜索算法與即插即用技術研究[J] .艦船電子工程,2012,32(4):95~99.
[10] 周志光,朱志偉,劉瓊.DS2430A在即插即用傳感器系統(tǒng)中的應用[J] .單片機與嵌入式系統(tǒng)應用,2010,10(6):68~70.