曹建鋒,殷 翔,張 帥,楊 幸,黃 磊
(上海機電工程研究所,上海 201109)
在嵌入式控制領域,常用的檢測一般分為數(shù)字量(開關量)檢測、模擬量檢查以及通信檢測,目前市場上通用的檢測方法大多是通過單一功能的板卡實現(xiàn)的,常見的是基于PCI 總線的外擴板卡實現(xiàn)的檢測。這種通過板卡集成的檢測方法,導致體積不可避免地增大,制約了檢測技術小型化、高集成發(fā)展趨勢[1]。因此,對檢測方法提出了更高的要求。
本文提出基于片上系統(tǒng)(System on Chip,SoC)技術的小型化復合檢測方法,該方法具有系統(tǒng)集成度高、體積小、功耗低等優(yōu)點。它是在一個芯片上實現(xiàn)多種檢測功能,通常包括了:檢測邏輯模塊、微處理器/微控制器CPU 內(nèi)核模塊、數(shù)字信號處理器DSP 模塊、用戶定義邏輯等模塊,而這些模塊可以根據(jù)用戶的需求進行IP 核定制來實現(xiàn)。
本文從典型的幾種檢測需求出發(fā),研究基于SOC 技術的復合檢測方法。通過設計多種IP(Intellectual Property)[2]核,實現(xiàn)小型化檢測系統(tǒng),如圖1 所示。通用IP 核實現(xiàn)多種檢測方法在平臺芯片內(nèi)集成,不僅大幅減少檢測體積開銷,全面提升檢測集成化能力,同時該檢測方法可增強系統(tǒng)抗電磁干擾能力,通過IP 核實現(xiàn)的檢測方法可以快速進行移植,提升開發(fā)效率。
圖1 系統(tǒng)功能組成框圖Fig.1 Block diagram of system functions
圖2 串口收發(fā)IP核端口定義框圖Fig.2 Definition block diagram of serial port transceiver IP core port
本文選取了常見的串口、IO、AD 3 種典型檢測需求,可實現(xiàn)3 種檢測和通過串口進行遠距離傳輸,研究分為IP核設計、仿真驗證、實物驗證3 部分。
串口是使用率較高的一種通信方式,使用簡單、差分信號傳輸,具有抗干擾、可靠性高的特點,廣泛應用在工業(yè)控制領域中,可實現(xiàn)數(shù)據(jù)的高速可靠傳輸,同時滿足實時性要求[4],在進行串口IP 核可分為接收IP 和發(fā)送IP 兩種,設計時,首先進行端口規(guī)劃和定義,框圖如圖2 所示。
端口定義見表1、表2。
該IP 核不僅可以對多路IO 數(shù)字信號量檢測,同時可以進行相對時序檢測,采樣速率高、采樣路數(shù)多,可支持并行采樣串行輸出結果,如圖3 所示,設計了8 組八位帶寬的獨立IO 檢測接口,并設計有通信接口,支持通信應急采集回告。
表1 串口接收IP核端口輸入輸出表Table 1 Serial port receiving IP core port input and output table
表2 串口發(fā)送IP核端口輸入輸出表Table 2 Serial port sending IP core port input and output table
在模擬量采集過程中常用的是AD 檢測方法,AD 采樣IP 核設計易于仿真驗證,節(jié)約開發(fā)成本和周期[5],端口定義見表3。
通過EDA(Mentor)工具設計基于SoC 技術檢測模塊原理,并通過Modelsim 軟件進行仿真分析。
圖3 IO檢測IP核端口定義框圖Fig.3 IO Detection IP and port definition block diagram
表3 AD采樣IP核輸入輸出端口表Table 3 AD Sampling IP core input and output port table
串口IP 核又可細分為發(fā)送IP 和接收IP 兩種。
3.1.1 串口發(fā)送IP
利用時序仿真工具對串口發(fā)送IP 進行時序仿真驗證,如圖4、圖5 所示。
系統(tǒng)時鐘50M,Rst_n 為系統(tǒng)復位信號,低有效,系統(tǒng)復位完成后開始TX 準備發(fā)送數(shù)據(jù)。TX_Enable1 為發(fā)送使能信號,TX_Data1 為發(fā)送數(shù)據(jù)緩沖,初始數(shù)據(jù)位十六進制0x55,如圖4 所示。系統(tǒng)復位完成后,發(fā)送使能上升沿有效,TX 開始發(fā)送數(shù)據(jù),發(fā)送時序滿足串口協(xié)議,起始位0,8 位數(shù)據(jù)位,停止位1。串行數(shù)據(jù)TX 依次發(fā)送0101010101,即0x55。圖4 所示發(fā)送多個字節(jié)時序,分別向外發(fā)送0x55,0xaa,波特率仿真的時序圖,如圖5 所示。
3.1.2 串口接收IP
利用時序仿真工具對串口接收IP 進行時序仿真驗證,如圖6、圖7 所示。
圖4 單個字節(jié)發(fā)送的時序圖Fig.4 Timing diagram of single byte transmission
圖5 多個字節(jié)發(fā)送的時序圖Fig.5 Timing diagram of sending multiple bytes
圖6 單個字節(jié)接收的時序圖Fig.6 Timing diagram of single byte reception
圖7 多個字節(jié)接收的時序圖Fig.7 Timing diagram of receiving multiple bytes
系統(tǒng)時鐘50M,Rst_n 為系統(tǒng)上電復位信號,低有效,RX 為串口數(shù)據(jù)接收端,Data_1 為數(shù)據(jù)接收寄存器1。上電后復位結束后,RX 端開始接收數(shù)據(jù),Data_1 復位值為0,經(jīng)過一字節(jié)數(shù)據(jù)接收后,數(shù)據(jù)變?yōu)?1111110,即0x7f,多個字節(jié)接收的時序圖如圖7 所示。
圖8 AD采樣驅(qū)動時序圖Fig.8 AD sampling drive timing diagram
圖9 AD采樣初始化設置時序圖Fig.9 AD sampling initialization timing diagram
圖10 AD采樣讀寫驗證時序圖Fig.10 AD sampling read and write verification timing diagram
圖11 檢測方法采樣驗證界面Fig.11 Detection method sampling verification interface
IO 檢測、多路時序檢測可以歸一化為一系列隨時間變化的高低電平,在檢測模塊中設置定時器,以設備開機為時間零點,軟件實時采樣各個點火通路的IO 端口電平信號變化情況,并將IO 端口電平變化時刻的時間記錄下來,形成時序采樣數(shù)據(jù),具有8 組,每組可檢8 路獨立IO 的能力。
以12 路AD 采樣為例,可以對模擬量進行高精度檢測,過程分為AD 采樣驅(qū)動時序、初始化時序以及讀寫時序驗證,如圖8 ~圖10 所示。
圖9 為系統(tǒng)復位后對AD 進行配置,CS 為片選,DIN為輸入端,SCLK 為串行時鐘,在使片選有效后,在時鐘的上升沿一次推送數(shù)據(jù),進行對器件初始化。
推 送16 位 初 始 化 碼,Ini_Code 為 初 始 化 碼,1111100011000001。初始化完成后就可以對器件進行讀寫,讀寫時序和初始化操作時序一致,片選CS 有效,在時鐘的SCLK 的驅(qū)動下讀寫。
讀數(shù)據(jù),DOUT 為器件數(shù)據(jù)輸出端,CH_L、CH_H為數(shù)據(jù)存儲寄存器,如圖9 所示,所讀出的數(shù)據(jù)為全0,DOUT 與CH_L、CH_H 的內(nèi)容相符。
基于Labview 環(huán)境,搭建了上位機顯示軟件驗證環(huán)境,并通過RS422 與檢測模塊通信。檢查模塊可將IO 端口檢測、RS422 通信、AD 采樣結果通過RS422 發(fā)送給上位機進行界面顯示和人機交互,如圖11 所示。
選取IO 輸入、AD 輸入進行結果驗證,如圖12 所示,在IO 輸入值為0.1V ~5V 信號源激勵下,設置閾值大于1V 為高電平1,反之為低電平,實現(xiàn)了IO 檢查;在AD 模擬值為4.99V ~5.01V 信號源激勵下,AD 采樣精度滿足使用要求,實現(xiàn)了AD 采樣。
該復合檢測方法已應用在某型號產(chǎn)品中,用來檢測供電電壓和電流的時序數(shù)據(jù),檢測精度滿足使用要求,并設計了通信接口,將檢測結果通過RS422 通信向上級系統(tǒng)發(fā)送,實現(xiàn)了檢測小型化、集成化,經(jīng)驗證,該檢測方法原理可行。
本文在檢測技術小型化、集成化指導下,基于SoC 平臺通過IP 核技術研究了一種小型化復合檢測方法,該檢測方法可滿足多種檢測需求、通過IP 核可以快速移植,提升了二次開發(fā)效率,實現(xiàn)了采集系統(tǒng)的小型化、集成化、智能化。該方法滿足符合檢測要求,同時該系統(tǒng)定義了電氣接口和數(shù)字接口協(xié)議,可快速嵌入到型號產(chǎn)品中,極大縮短了產(chǎn)品開發(fā)、調(diào)試時間,同時提高了產(chǎn)品可靠性、電磁兼容性,為后續(xù)小型化智能采集設備設計提供了一定的參考價值。