傳感器設(shè)備是工業(yè)自動化、儀器儀表及其他生產(chǎn)活動中使用最廣泛的設(shè)備之一。傳感器是獲取自然和生產(chǎn)領(lǐng)域中信息的主要途徑與手段。早期傳感器設(shè)備都是直接與控制器進行連接,并且各個傳感器設(shè)備之間無法進行通信。在一個龐大的控制系統(tǒng)中,可能擁有各種各樣的傳感器設(shè)備,采用傳統(tǒng)的點對點通信方式,會導致整個系統(tǒng)布線復雜、運行效率低、維護成本高等缺點。CAN總線的推出使得系統(tǒng)布線得到最大程度的改善,基于CAN總線應(yīng)用層的DeviceNet協(xié)議不僅改變了設(shè)備與控制系統(tǒng)之間的通信方式,更增加了設(shè)備級的診斷功能。
本期文章將介紹如何利用XGate-DVN10模塊設(shè)計一款基于DeviceNet從站協(xié)議的多功能傳感器模塊。
廣州致遠電子有限公司長期致力于DeviceNet產(chǎn)品的研發(fā),推出了一款非常易于使用、穩(wěn)定可靠的DeviceNet從站協(xié)議轉(zhuǎn)換模塊——XGate-DVN10。作為通用DeviceNet從站設(shè)備,其內(nèi)部已經(jīng)集成了從站協(xié)議棧代碼,且所有功能通過了ODVA的一致性測試軟件(A21)的測試,保證了與其他DeviceNet設(shè)備的良好兼容性。
XGate-DVN10為DIP24封裝,擁有較小的占位面積(6 cm2),使其更容易集成到用戶設(shè)備中。其硬件設(shè)計比較簡單,圖1所示為XGate-DVN10應(yīng)用簡圖,用戶只需要將模塊嵌入到傳感器設(shè)備中,與CPU的串口連接便可完成設(shè)計。
圖1 設(shè)計框圖
通過本文的介紹,讀者可以清楚地了解怎樣使用XGate-DVN10設(shè)計一款具有DeviceNet從站通信能力的傳感器設(shè)備。
本文所設(shè)計的傳感器系統(tǒng)包含了4路溫度和8路霍爾傳感器信號。溫度傳感器使用線性度較好的模擬溫度傳感器,并采用12位的模擬數(shù)字轉(zhuǎn)換芯片(A/D)對信號進行采集?;魻杺鞲衅骺捎糜跈z測磁性物質(zhì)的位置狀態(tài),當具有磁性的物體靠近霍爾傳感器時,霍爾傳感器會輸出一個低電平(0),否則就輸出高電平(1)。
硬件設(shè)計分為傳感器采集部分和XGate-DVN10連接部分,如圖2和圖3所示。
本設(shè)計中使用了 ARM7處理器(LPC2132),其運行速度快,最高可達72 MHz,并且擁有64 KB的Flash程序存儲空間以及16 KB的RAM空間,可滿足大部分應(yīng)用場合的需求。模擬數(shù)字轉(zhuǎn)換選用12位精度的轉(zhuǎn)換芯片,完成對溫度傳感器輸出信號的采集,并以數(shù)字信號的方式提供給處理器?;魻杺鞲衅鞯妮敵鲂盘枮檫壿嬰娖剑?,1),由于其驅(qū)動能力較弱,因此在其輸出端增加一個I/O驅(qū)動器來增強其驅(qū)動能力,通常使用總線驅(qū)動芯片 74HC245或 74HC244。
XGate-DVN10提供一路串口與CPU進行連接,該串口負責CPU與XGate-DVN10的全部數(shù)據(jù)交換和傳輸控制命令,同時LPC2132的I/O端口連接XGate-DVN10的復位引腳,可靈活地對XGate-DVN10進行復位操作。XGate-DVN10提供了節(jié)點地址和波特率設(shè)置接口,因此使用DIP撥碼開關(guān)來設(shè)置XGate-DVN10的節(jié)點地址和波特率。XGate-DVN10同時還提供了設(shè)備狀態(tài)指示燈接口,用于指示當前 XGate-DVN10(DeviceNet從站)的工作狀態(tài),并符合DeviceNet規(guī)范指示燈標準。
XGate-DVN10支持DeviceNet規(guī)范的4種連接類型(位選通、輪詢、狀態(tài)改變/循環(huán)),并為每種連接方式分配了最大I/O報文為128 B的內(nèi)存,內(nèi)存視圖如圖4所示。
圖4 XGate-DVN10內(nèi)存視圖
XGate-DVN10協(xié)議轉(zhuǎn)換模塊的內(nèi)存區(qū)大小可由用戶自定義,用戶可以根據(jù)不同的應(yīng)用場合,選擇合適的連接類型和支持的I/O報文長度。
本系統(tǒng)設(shè)計的溫度范圍為0~100℃,溫度數(shù)據(jù)的采集采用12位的A/D轉(zhuǎn)換器,因此每一路的溫度需要使用2 B來存放。由于溫度發(fā)生變化慢,只要在發(fā)生變化的時間內(nèi)進行檢測即可,因此采用輪詢的通信方式,這樣可以靈活地設(shè)定輪詢通信時間,以降低網(wǎng)絡(luò)的負載量?;魻杺鞲衅鞯妮敵鰹殚_關(guān)狀態(tài),每一路霍爾傳感器占用1 bit,因此8路的霍爾傳感器只占用1 B,可以采用狀態(tài)改變連接方式,當霍爾傳感器檢測到當前狀態(tài)發(fā)生改變,從站主動向主站發(fā)送數(shù)據(jù),實時性更加得到保證。
用戶只需要將溫度傳感器和霍爾傳感器的數(shù)據(jù)分別寫入到XGate-DVN10輪詢、狀態(tài)改變的輸入緩沖區(qū),XGate-DVN10就會按照DeviceNet協(xié)議的定義對數(shù)據(jù)進行解析處理,同樣來自DeviceNet網(wǎng)絡(luò)中控制信息也會經(jīng)過解析之后分別存放于輪詢和狀態(tài)改變數(shù)據(jù)輸出區(qū),用戶只需要讀出即可。
為了方便用戶快速可靠地實現(xiàn)通信,廣州致遠電子有限公司提供了XGate-DVN10串口協(xié)議的驅(qū)動源碼。用戶程序軟件操作流程如圖5所示。當XGate-DVN10的輸出內(nèi)存區(qū)接收到DeviceNet網(wǎng)絡(luò)中的實時數(shù)據(jù)之后就會立即向用戶MCU產(chǎn)生一個中斷,此時用戶可以通過UART發(fā)送相關(guān)命令字讀取輪詢連接的數(shù)據(jù)內(nèi)容,用戶可將實時更新的傳感器數(shù)據(jù)寫入輸入緩沖區(qū),XGate-DVN10自動發(fā)送至主站。
圖5 XGate-DVN10軟件設(shè)計流程圖
經(jīng)過以上步驟,快速地實現(xiàn)了一款具有DeviceNet通信能力的溫度及霍爾傳感器系統(tǒng),并能與標準的DeviceNet主站或DeviceNet從站進行通信。因此XGate-DVN10的出現(xiàn),使開發(fā)者不用再為開發(fā)DeviceNet協(xié)議棧而苦惱,DeviceNet產(chǎn)品短期上市也不再是夢想。
廣州致遠電子有限公司提供各種接口的DeviceNet接口卡、DeviceNet終端設(shè)備(包括數(shù)據(jù)采集,電機控制等)、DeviceNet分析儀、網(wǎng)關(guān)及網(wǎng)橋、OPC服務(wù)器以及基于DeviceNet協(xié)議的整套組網(wǎng)方案及應(yīng)用開發(fā)。