智能傳感器的CAN總線接口設計
4 CAN應用層協議
智能接口利用SoC內嵌的CAN協議控制器外加CAN驅動器,實現CAN報文的收發,系統構成如圖3所示。內嵌的Silicon Labs CAN協議控制器,符合Bosch規范2.0A(基本CAN)和2.0B(全功能CAN)。該CAN控制器包含一個CAN控制器核、消息RAM(獨立于CIP-51的RAM)、消息處理器和控制寄存器;由于該協議控制器不提供物理層的驅動,為此,外接了一個CAN收發器CTM8251T,將CAN控制器的邏輯電平轉換為CAN總線的差分電平。本文引用地址:http://www.104case.com/article/161549.htm
為實現傳感器的即插即用,需對收發的CAN報文內容與格式進行一定的約定,即在CAN應用層上制定相應的協議,以保證測控系統的即插即用。
4.1 發送報文的協議
由圖3可見,該SoC內嵌的消息RAM可保存32個消息對象。協議將其中的3個消息對象配置為下面介紹的發送消息對象。
4.1.1 發送電子數據表單
傳感器初次接人系統時,須首先向主機申請加入——申請從機ID標識。申請辦法是:傳感器一接入系統,立即發送其第1條消息對象,發送的報文為一數據幀,其仲裁域的ID是系統特別約定的“申請ID”。約定:系統中僅主機對申請ID作出反應,即通過讀取該數據幀的8字節數據(該傳感器的電子數據表單——TEDs),了解該傳感器的類型、特性、編號、物理量綱及數據特征。主機比較/記錄該數據項,并根據其TEDs中類型、特性項,結合系統要求,確定其諸如采樣方式、采樣周期、是否數字濾波、濾波方式、數據區長度等,并分配給其相應的從機“標識ID”和啟動A/D轉換的“啟動ID”。傳感器TEDs中的編號項,用于區分系統中類型、特性相同的傳感器;物理量綱項,用于告知主機該傳感器所傳數據的實際物理單位,也表征了該被測物理量數值的實際大小;數據特征項,用于表征所傳16位數據的特征(BCD碼、二進制整數、二進制小數、小數點位置等)。
申請ID,一般可約定采用CAN系統優先級較低的ID,確定后,系統主機將不再將此ID分配給任何CAN節點。
4.1.2 發送配置/管理申請
傳感器可獲得主機分配的2個從機標識ID,分別為“標識1ID”和“標識0ID”。用標識1ID配置第2條發送消息對象,該消息對象將成為與主機交互的發送接口,用于向主機申請各種各樣的配置/管理要求。但當傳感器由于某些原因需要重新接入系統時,仍需用第1條發送消息對象向主機申請加入。
4.1.3 發送數據
由于物理接口方面的原因,目前CAN網絡的規模大約在110個節點左右,即使BasicCAN也有11位的ID標識,所能標識的節點數遠超當前所能使用的節點數,只是11位ID的最低3位不參與報文濾波。為此,規定:主機分配給節點的兩個從機標識ID,其前10位相同,最低位為1即標識1 ID,用于配置第2條發送消息對象,該消息對象為與主機進行常規交互的發送接口,如上所述;最低位為0即從機標識0ID,用于配置第3條發送消息對象,該消息對象用于上傳節點數據。
4.2 接收報文的協議
協議要求配置3個接收消息對象,作用分別為:
①濾波接收用本節點“申請ID”發來的數據幀。傳感器接入系統后,首先用申請ID發送傳感器電子數據表單,主機用同樣的ID回復一數據幀,該數據幀包含有分配給傳感器的標識ID、啟動ADC的啟動ID及對該節點的基本配置要求。CAN控制器配置的第1條接收消息對象,即用來濾波接收該數據幀。
②濾波接收用本節點“標識ID”發來的數據幀。當需要對傳感器進一步進行配置管理時,用第2條發送消息對象,向主機發送配置/管理申請,主機將使用相同的ID(該從機的標識ID),回復對其的配置/管理指令(位于該報文數據域)。為此,需配置第2條接收消息對象,濾波接收用本從機標識ID發送的數據幀。
③濾波接收用本節點“啟動ID”發來的數據幀。用啟動ID配置第3條接收消息對象,即該消息對象能實現對該“啟動ID”的濾波。
結語
基于SOC技術的C8051F041的使用,極大地簡化了系統構成,最大限度地減小了接口板的尺寸,使其更易于嵌入傳感器中。由MCU控制的信號調理、零點校準及信息的定標轉換,使傳感器成為CAN總線上的一個智能節點,從而可充分利用CAN總線的各種技術優勢。再通過設計一套比較完備的應用層協議,最終實現了傳感器的即插即用。
評論