本站小編為你精心準備了一種應用于閘位計的SENT接口設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:設計了一種用于閘位計的單邊沿半字節傳輸(sent)接口,該接口一方面可以減少閘位計的布線,另一方面減少采集器IO口的占用數量。接口采用低功耗可編程邏輯器件CPLD實現。經過邏輯仿真,實際測試該接口設計正確。
關鍵詞:閘位計,單邊沿半字節傳輸協議(SENT),可編程邏輯器件
閘位計是水利行業的常用儀表,閘位計通常有機械碼盤型和光電旋轉編碼器。機械碼盤型閘位計通常采用12位并行格雷碼輸出,光電旋轉編碼器通常采用SSI(同步串行接口)輸出。12位并行格雷碼要求采集單元有多個IO口,SSI接口要求采集單元提供高速編碼時鐘。還用一類通過微控制器將機械碼盤型并行接口或光電旋轉編碼器SSI接口轉換成RS485接口的閘位計。在較大的閘門控制現場通常有多個閘位需要測量,這就要求采集設備具有更多的IO口,或者多個SSI接口。對于采用RS485接口的閘位計,采集器通常按照輪詢方式采集各個閘位[1-2]。單邊沿半字節傳輸(SingleEdgeNibbleTransmission)協議簡稱SENT協議,是美國汽車工程師學會(SAE)制定的,旨在提供更精確有效并且低成本的電機控制解決方案。相比于模擬信號輸出和PWM輸出方式,基于SENT協議的電機控制是一種可以有效降低成本、節省線束、節省插針結頭的低成本方案,具有很好的EMC特性,并且能傳輸故障代碼從而使傳感器系統具有很強的故障診斷能力[3-5]。SENT協議采用單向傳輸,僅需要一根信號線就能傳輸一個傳感器的物理量信息和故障代碼。鑒于SENT協議的優勢,本文設計一種將傳統閘位計轉換成SENT協議的接口裝置。
1SENT協議
SENT協議是一種點對點的單向從傳感器到控制器的協議,控制器不需要同步信號。傳感器信號以一串脈沖來傳送,脈沖下降沿之間時長表示信號的大小。傳感器上電后立即發送數據,接收機不需要發送查詢信號。一個SENT幀包括同步頭、傳感器狀態、6個半字節數據、CRC校驗字段。除同步頭外,SENT報文按照半字節傳送。半字節傳送的時間單位是時鐘。SENT協議規定時鐘周期在3~10μs之間。SENT報文中每一個半字節被編碼成一個正脈沖,脈寬大小取決于半字節的數值。半字節為0,正脈寬7個時鐘,半字節數值每增加1,正脈寬增加一個時鐘,因此最大正脈寬時間是22個時鐘。正脈沖之間采用固定5個時鐘的負脈沖間隔。圖1中a、b顯示的是0和15的半字節SENT脈沖波形。同步頭由51個時鐘長度的正脈沖表示[3]。
2CPLD實現的閘位計SENT接口
SENT幀格式設計如表1。同步頭按照SENT協議規定產生。SENT幀幀中的傳輸的閘位計狀態僅考慮正常/故障2種情況,用0值表示閘位計正常,8值表示閘位計有故障。數據1對應二進制閘位值最高位4比特G11-G8,數據2對應二進制閘位值中間位4比特G7-G4,數據3對應二進制閘位值最低位4比特G3-G0。接著后面的兩個半字節分別設計為數據1和數據2的邏輯反,最后一個半字節是一個減計數器,從15到0循環減小。表1用于閘位計的SENT幀設計CPLD邏輯功能如圖2所示,可劃分為格雷碼譯碼模塊、同步字段發生模塊、閘位計狀態發生模塊、半字節填充模塊、CRC校驗模塊、選擇器模塊、脈沖邏輯發生模塊以及系統控制邏輯模塊。格雷碼譯碼模塊由一組異或門的組合邏輯構成,12位并行格雷碼閘位值經譯碼得到12位并行二進制碼閘位值。這12位二進制碼按照每4比特一組分為3個半字節,作為SENT幀的數據1、數據2和數據3。同步字段發生模塊是一個6比特的常數44。閘位計狀態發生模塊根據閘位計的狀態產生4比特數據0(正常)或者8(故障)。半字節填充模塊包括一組產生閘位值最高8比特的邏輯反相器和一個4比特減計數器,用于填充SENT幀中閘位數據值后面的3個半字節,即數據1的反、數據2的反以及減計數值。CRC校驗模塊產生幀的校驗值。選擇器在系統控制邏輯模塊的控制下選擇同步字段模塊的輸出、閘位計狀態發生模塊輸出、12比特二進制閘位值、半字節填充模塊的輸出以及CRC校驗模塊的輸出之一作為隨后的脈沖邏輯發生模塊的輸入。脈沖邏輯發生模塊先產生5個時鐘的低電平,然后根據6比特輸入的值產生比輸入值多7的時鐘數的高電平。以上所有模塊在系統控制邏輯模塊下控制。CRC校驗采用多項式是x4+x3+x2+1,初始種子為0101。CRC校驗模塊采用如下圖3所示電路實現。開始校驗前寄存器預置成CRC3=0CRC2=1CRC1=0CRC0=1,數據從Data端輸入,經過24比特時鐘后從4個寄存器取出4比特校驗結果[CRC3CRC2CRC1CRC0]。圖3SENT幀4比特CRC計算電路
3仿真與測試
選用Intel公司MaxII系列CPLD,在EDA環境下對邏輯進行仿真,波形如圖4a所示。圖中顯示了6個半字節的數據和它們的CRC校驗結果,數據0xFFF00E的CRC校驗結果是0x04,數據0xFFF00D的CRC校驗結果是0x07,相應的SENT幀輸出顯示在隨后一行,可以觀察到幀同步頭、狀態、數據以及校驗字段對應的波形,經測量邏輯正確。仿真正確后將邏輯載入CPLD中,使用RigolDS6104示波器對CPLD輸出SENT信號波形進行測量,如圖4b所示。實驗中時鐘為250kHz,即時鐘周期是4μs。低電平持續時間5個時鐘,占用時間20μs。同步頭正脈沖占用51個時鐘,約200μs。圖中顯示的波形是狀態正常,數據為0xFFF00E,相應的校驗字是0x04產生的波形。為了測量所設計的正確性,對所產生的SENT幀進行解碼還原出閘位值顯示。測試方案如圖5a所示。使用AVR單片機接收SENT信號進行解碼,并將轉換值上報給上位機進行存儲展示。AVR單片機解碼使用它具有的外部脈沖捕獲功能,對收到的SENT信號中鄰近的下降沿時間間隔計數,根據計數值得到高電平時間,從而對SENT進行解碼恢復閘位信息。測試中讓格雷碼閘位計勻速轉動,SENT解碼結果由上位機不間斷顯示。實驗使用的是南京水利水文自動化研究所的12位格雷碼閘位計,圖5b是在上位機上顯示的閘位值解碼結果,閘位從0開始均勻增加,當達到最大值4095后變為0重新開始。圖5閘位計SENT接口測試方案(a)和測試結果(b)
4結束語
本文設計了一個用于并行格雷碼閘位計的SENT接口轉換裝置,采用低功耗CPLD實現。經過仿真和實際測試,證明該SENT接口邏輯正確。使用SENT接口后大大減少閘位計現場布線以及采集器IO口的占用。
參考文獻
[1]袁建軍,許永祥,王張磊,等.一體化閘門技術在疏勒河灌區斗口計量的運用[J].中國農村水利水電,2018(1):23-25
[2]宦鴻興,柏屏.基于AT89C52單片機的泵站現地監控單元設計[J].排灌機械,2006,24(3):12-16
[3]SAEinternationalsurfacevehicleinformationreportJ2716.SENT-Singleedgenibbletransmissionforautomotiveappli-cations[S].2010
[4]馬楠,吳長坤.基于SENT協議的有刷直流電機控制系統設計[C]∥第九屆全國信號和智能信息處理與應用學術會議,2015:275-278
[5]黃鵬,杜克奎,榮鋒,等.基于自適應SENT協議的電機控制系統設計[J].天津工業大學學報,2016,35(2):83-88
作者:花再軍 黃鳳辰 陳釗 李建霓 單位:河海大學計算機與信息學院