引言
測控系統(tǒng)離不開傳感器。由于各種傳感器的工作原理不同,其最終輸出的電量形式各不相同。即使同一類傳感器,其靈敏度、測量范圍不同,相同電信號代表的物理量也不盡相同。因此,傳統(tǒng)的測控系統(tǒng),必須對系統(tǒng)中的每一個傳感器進行配置,傳感器類型、靈敏度、測量范圍等的細微改變都將導致系統(tǒng)(主要是軟件和部分硬件)的重新設置。若要增/減傳感器,以改變測控系統(tǒng)的規(guī)模,則需對整個系統(tǒng)(軟件、硬件及布線)。進行重新配置。這無疑極大地限制了測控系統(tǒng)的靈活性,制約了測控系統(tǒng)的擴展性。CAN的通信硬件接口簡單,通信線少,通信介質可以為雙絞線、同軸電纜或者光纜。將測控系統(tǒng)配置為CAN總線結構,將目前廣泛應用的各種模擬傳感器,配以CAN總線接口,使之成為CAN總線上的一個智能節(jié)點,即易于實現傳感器的即插即用,也提高了測控系統(tǒng)的靈活性和可擴展性。
1 傳感器/CAN智能接口系統(tǒng)構成
傳感器/CAN智能接口的作用主要有兩點:一是控制傳感器的信號調理,將傳感器的輸出模擬信號轉換為數字量,并進行相應的處理,形成可發(fā)送的CAN報文信息;二是控制CAN驅動器,收/發(fā) CAN總線上的報文信息,并執(zhí)行相應的智能控制。智能接口系統(tǒng)構成如圖1所示。
針對大多數模擬傳感器輸出信號較弱的特點,接口首先對傳感器信號進行一級放大和濾波的預處理,預處理后的傳感器信號幅度在200 mV左右,單端輸出。此后對該信號的處理完全由基于SOC技術的混合信號微處理器C8051F041自動完成,如信號的程控放大、信號的零點校準、信號的A/D變換、信號的數字濾波以及CAN報文的形成和收發(fā)控制等;C8051F041是該接口的核心,它不僅完成傳感器信號到CAN報文的轉換;更通過對傳感器信號調理的智能控制和對CAN應用層的編程,實現傳感器的即插即用。
2 傳感器信號調理
考慮到絕大多數傳感器信號較弱,且包含大量的噪聲信號,因此需首先對傳感器輸出的模擬信號進行必要的調理,信號調理由信號預處理電路結合S0c中的模擬外設實現,如圖2所示。在此,信號調理主要對傳感器信號進行了必要的濾波、放大和零點校準。
2.1 傳感器信號的濾波處理
考慮到日益惡劣的電磁干擾環(huán)境,對傳感器信號的濾波分兩級實現:終級為利用SoC中的高速MCU對采集的信號進行數字濾波(不在此討論);初級則是由信號預處理電路中R1、R2、C1、C2、C3,組成抗射頻干擾濾波器來實現,如圖2所示。當不考慮C3時,R1、C1和R2、C2就構成了傳感器兩輸出端至儀用放大器兩輸入端之間的兩低通濾波器,時間常數t1=R1·C1;t2=R2·C2。由于無論是傳感器至AD623之間的自然連線等效形成的t1和t2,還是人為設計的低通濾波器的t1和t2,都不能使RC完全匹配相等,即t1≠t2;△t=t1-t2≠0。這樣耦合到兩根連線上的干擾電磁波,即使是同頻、同相位、同幅值的共模信號,進入AD623進行放大時也必然出現相位差,并由此導致兩輸入端之間的幅值差。當干擾信號頻率較低時,由于△t相對干擾信號的周期較小,造成的兩輸入端之間的幅值差,相對共模部分很小,利用AD623的共模抑制能力,能對干擾信號進行較好地抑制(共模部分被抑制,差分部分影響較小);但當干擾信號頻率較高時,則△t相對干擾信號的周期較大,極端情況如兩路信號相位差180°時,則同頻、同相位、同幅值的共模干擾信號,進入AD623時被合成為兩倍幅值的同頻差分信號,該差分信號不僅不能被抑制,還被放大器放大,即被混疊到有效信號中,難以消除。為此,在兩低通濾波器之間跨接了電容C3,這樣該濾波器的差分帶寬為:
其中:R=R1=R2,C=C1=C2。
比較(1)(2)兩式可以看出,當不接入C3時,濾波器的差分帶寬等于共模帶寬。因此,在帶寬范圍內的共模信號,因RC不完全匹配(△t≠ 0)引起的幅值差,在帶寬范圍內,濾波器不能將其濾除。當接入C3后,如果使C3=10C,則差分帶寬比共模帶寬降低了20余倍,因此可大量濾除因RC不匹配引起的差分信號。
2.2 傳感器信號的放大
對傳感器信號采用兩級放大。第一級用信號預處理電路中的儀用放大器AD623,進行固定增益的信號放大,增益G=100 kΩ/R3+1。可根據傳感器信號大小,選擇增益(通過選取R3阻值獲得),使通過一級放大后的傳感器額定輸出信號達到200 mV左右。第二級放大,用SOC中的程控放大器(PGA)實現;其可編程增益為0.5、1、2、4、8、16。理論上使一級放大后的傳感器額定輸出信號Vg1×16(二級放大最大增益)近似等于ADC的參考電壓(實際應用中一般為2/3~3/4參考電壓),從而最有效地利用ADC的分辨率。
2.3 傳感器信號零點的補償與校準
2.3.1 根據傳感器特性的補償
傳感器在工況條件發(fā)生變化時,輸出信號會有相應的變化,該輸出信號的變化與被測物理量無關,即為漂移信號。當傳感器給出相應的特性值時,應設計檢測該工況條件的傳感器,實時監(jiān)測傳感器的工況條件,利用MCU求得補償量,進行補償。導致傳感器零點漂移最常見的特性之一,是溫度特性,為補償因溫度變化引起的漂移,特選用了內含溫度傳感器的SoC——C8051F041。由于該接口嵌入傳感器中,因此其檢測到的溫度變化△t就是傳感器的溫度變化,若已知傳感器的溫度系數為aT(1/℃),則補償量VTR為:
其中YFS為傳感器的額定輸出。將該補償量疊加到傳感器信號中,即可消除溫漂的影響。
2.3.2 根據傳感器應用特征的補償
傳感器零點信號的漂移,變化是非常緩慢的,在一段時間內的漂移量很小。當傳感器工作于間歇方式且被測物理量的閾值遠大于傳感器一個工作周期內的漂移量時,則當傳感器輸出信號小于該閾值時,該輸出值即為補償量,與傳感器信號疊加后使輸出信號為零。
為使傳感器信號與補償量疊加,利用SOC中的12位DAC(如圖2所示)輸出一補償電壓VB接一級放大器AD623的參考端(引腳5),則一級放大器輸出電壓Vout:
其中Vc為傳感器輸出的差分電壓信號’b1為一級放大器增益。
當需進行溫度補償時,使VB=VB0+VTB×b1,其中VBO為當前(補償前)的VB。將(3)式代入則有:
從(6)式中的第2項可見,含有溫度漂移的傳感器輸出信號Vc被修正,溫漂被補償,零點被校準。
當傳感器工作于間歇方式,溫度補償后二級放大后輸出為V=Vout×b2。當V小于被測物理量的閾值時,V即為補償量-V,使
其中b2為二級放大器選擇的增益,顯然再經二級放大后的輸出將為0,即零漂被補償了,零點被自動校準了。
當傳感器工作于非間歇方式,或被測物理量的閾值很小,與一個工作周期內的漂移量相當時,則需采用人為的零點校準。即當傳感器處于零點時,發(fā)出校準指令,收到指令后,MCU立即將當前二級放大后的電壓值V,通過(7)式疊加到信號中,使輸出為零,零點被校準。
3 信號的A/D變換及定標
CAN總線上傳送的信息為數字量,為此,選用SoC內部的具有12位分辨率、最高轉換速度達到100 ksps的SAR ADC0,將模擬量轉換為數字量(參見圖2)。該ADC的工作方式與啟動方式,將在傳感器接入系統(tǒng)后,由主機確定。
定標系數可通過標定傳感器獲得,即將加載到傳感器上的已知被測物理量A,除以此時采集到的數字量N,即定標系數為A/N;也可通過傳感器的靈敏度、放大器的增益、ADC的分辨率及參考電壓計算獲得,但這樣得到的定標系數精度稍差。與定標系數所對應的物理量綱,則在傳感器接入CAN總線時,通過向系統(tǒng)主機發(fā)送的電子數據表單(Transducer Electronic Data sheet,TEDs),告知系統(tǒng)主機;從而系統(tǒng)主機收到某傳感器發(fā)來的數字量,就是具有特定物理量綱的被測物理量實際數值。這樣做,第一可減少主機的運算工作量;第二也降低了TEDs的復雜度(只需約定物理量綱,而無需傳送定標系數等);第三使接口可靈活地根據傳感器信號幅度選擇適當的增益,提高小信號的分辨率,此時接口只需自行改變相應的定標系數即可,無需與主機交互變換定標系數。
4 CAN應用層協(xié)議
智能接口利用SoC內嵌的CAN協(xié)議控制器外加CAN驅動器,實現CAN報文的收發(fā),系統(tǒng)構成如圖3所示。內嵌的Silicon Labs CAN協(xié)議控制器,符合Bosch規(guī)范2.0A(基本CAN)和2.0B(全功能CAN)。該CAN控制器包含一個CAN控制器核、消息RAM(獨立于CIP-51的RAM)、消息處理器和控制寄存器;由于該協(xié)議控制器不提供物理層的驅動,為此,外接了一個CAN收發(fā)器CTM8251T,將CAN控制器的邏輯電平轉換為CAN總線的差分電平。
為實現傳感器的即插即用,需對收發(fā)的CAN報文內容與格式進行一定的約定,即在CAN應用層上制定相應的協(xié)議,以保證測控系統(tǒng)的即插即用。
4.1 發(fā)送報文的協(xié)議
由圖3可見,該SoC內嵌的消息RAM可保存32個消息對象。協(xié)議將其中的3個消息對象配置為下面介紹的發(fā)送消息對象。
4.1.1 發(fā)送電子數據表單
傳感器初次接人系統(tǒng)時,須首先向主機申請加入——申請從機ID標識。申請辦法是:傳感器一接入系統(tǒng),立即發(fā)送其第1條消息對象,發(fā)送的報文為一數據幀,其仲裁域的ID是系統(tǒng)特別約定的“申請ID”。約定:系統(tǒng)中僅主機對申請ID作出反應,即通過讀取該數據幀的8字節(jié)數據(該傳感器的電子數據表單——TEDs),了解該傳感器的類型、特性、編號、物理量綱及數據特征。主機比較/記錄該數據項,并根據其TEDs中類型、特性項,結合系統(tǒng)要求,確定其諸如采樣方式、采樣周期、是否數字濾波、濾波方式、數據區(qū)長度等,并分配給其相應的從機“標識ID”和啟動A/D轉換的“啟動ID”。傳感器TEDs中的編號項,用于區(qū)分系統(tǒng)中類型、特性相同的傳感器;物理量綱項,用于告知主機該傳感器所傳數據的實際物理單位,也表征了該被測物理量數值的實際大小;數據特征項,用于表征所傳16位數據的特征(BCD碼、二進制整數、二進制小數、小數點位置等)。
申請ID,一般可約定采用CAN系統(tǒng)優(yōu)先級較低的ID,確定后,系統(tǒng)主機將不再將此ID分配給任何CAN節(jié)點。
4.1.2 發(fā)送配置/管理申請
傳感器可獲得主機分配的2個從機標識ID,分別為“標識1ID”和“標識0ID”。用標識1ID配置第2條發(fā)送消息對象,該消息對象將成為與主機交互的發(fā)送接口,用于向主機申請各種各樣的配置/管理要求。但當傳感器由于某些原因需要重新接入系統(tǒng)時,仍需用第1條發(fā)送消息對象向主機申請加入。
4.1.3 發(fā)送數據
由于物理接口方面的原因,目前CAN網絡的規(guī)模大約在110個節(jié)點左右,即使BasicCAN也有11位的ID標識,所能標識的節(jié)點數遠超當前所能使用的節(jié)點數,只是11位ID的最低3位不參與報文濾波。為此,規(guī)定:主機分配給節(jié)點的兩個從機標識ID,其前10位相同,最低位為1即標識1 ID,用于配置第2條發(fā)送消息對象,該消息對象為與主機進行常規(guī)交互的發(fā)送接口,如上所述;最低位為0即從機標識0ID,用于配置第3條發(fā)送消息對象,該消息對象用于上傳節(jié)點數據。
4.2 接收報文的協(xié)議
協(xié)議要求配置3個接收消息對象,作用分別為:
?、贋V波接收用本節(jié)點“申請ID”發(fā)來的數據幀。傳感器接入系統(tǒng)后,首先用申請ID發(fā)送傳感器電子數據表單,主機用同樣的ID回復一數據幀,該數據幀包含有分配給傳感器的標識ID、啟動ADC的啟動ID及對該節(jié)點的基本配置要求。CAN控制器配置的第1條接收消息對象,即用來濾波接收該數據幀。
?、跒V波接收用本節(jié)點“標識ID”發(fā)來的數據幀。當需要對傳感器進一步進行配置管理時,用第2條發(fā)送消息對象,向主機發(fā)送配置/管理申請,主機將使用相同的ID(該從機的標識ID),回復對其的配置/管理指令(位于該報文數據域)。為此,需配置第2條接收消息對象,濾波接收用本從機標識ID發(fā)送的數據幀。
?、蹫V波接收用本節(jié)點“啟動ID”發(fā)來的數據幀。用啟動ID配置第3條接收消息對象,即該消息對象能實現對該“啟動ID”的濾波。
結語
基于SOC技術的C8051F041的使用,極大地簡化了系統(tǒng)構成,最大限度地減小了接口板的尺寸,使其更易于嵌入傳感器中。由MCU控制的信號調理、零點校準及信息的定標轉換,使傳感器成為CAN總線上的一個智能節(jié)點,從而可充分利用CAN總線的各種技術優(yōu)勢。再通過設計一套比較完備的應用層協(xié)議,最終實現了傳感器的即插即用。