引言:
環(huán)境設(shè)備控制很大程度決定了試驗(yàn)質(zhì)量,其過程精確及繁雜,用分析的眼光通觀其處理過程,將會找到更加合理高效的配置解決方案。
整個控制邏輯則由中控控制單元統(tǒng)一存儲和調(diào)配,針對不同的使用需求,中控控制單元會發(fā)出相對應(yīng)的指令。接收裝置獲取后會對其做進(jìn)一步識別(放大、調(diào)頻、信號檢測并修正),之后便會傳至比較電路,通過信號與控制單元中的存儲特征曲線進(jìn)行比較,如果二者一致,系統(tǒng)會判定可執(zhí)行識別環(huán)節(jié)會采用更高級別的指令。通過數(shù)據(jù)上的傳遞,在一定區(qū)間內(nèi),信號會傳遞至中控控制單元,數(shù)據(jù)包是通過協(xié)議棧被接收并往上層傳遞的,與編譯器字對齊相關(guān)的宏定義,三個字段分別和上行中的目的地址、源地址和類型域字段對應(yīng)。創(chuàng)建該進(jìn)程時,要將某個網(wǎng)絡(luò)接口結(jié)構(gòu)的結(jié)構(gòu)指針作為參數(shù)傳入。接收一個數(shù)據(jù)包如果數(shù)據(jù)包為空,則循環(huán)結(jié)束,啟動下次接收過程,取得數(shù)據(jù)包內(nèi)數(shù)據(jù),判斷數(shù)據(jù)包類型只對IP數(shù)據(jù)包和ARP數(shù)據(jù)包進(jìn)行處理,將數(shù)據(jù)包發(fā)送到上層應(yīng)用函數(shù)。
在數(shù)據(jù)包接收進(jìn)程中,有三個注意相互制衡的地方。一是數(shù)據(jù)包接收總線的方法是查詢方式,即處理器持續(xù)向網(wǎng)卡互信緩沖區(qū)讀取數(shù)據(jù),假使暫時讀不到數(shù)據(jù),則控制器在電平翻轉(zhuǎn)時定重新啟動一個時鐘讀取時序;如果機(jī)制建立能夠成功采集到數(shù)據(jù),則將冗余數(shù)據(jù)通過網(wǎng)卡注冊的input函數(shù)交往上層進(jìn)行處理。使用查詢方式實(shí)現(xiàn)對碼的數(shù)據(jù)包接收進(jìn)程其優(yōu)先轉(zhuǎn)置級必須低于系統(tǒng)中其他進(jìn)程的優(yōu)先級,否則它會阻塞比它優(yōu)先級低的譯碼過程運(yùn)行。上面的程序有個可以改進(jìn)的地方,即在讀取到的數(shù)據(jù)包為空時,接收進(jìn)程調(diào)用系統(tǒng)函數(shù)將自己延時一段時間再啟動下一個讀取過程,這樣可以使其不能阻止優(yōu)先級更低的進(jìn)程的運(yùn)行,缺點(diǎn)是數(shù)據(jù)包的接收得不到及時的響應(yīng)。其實(shí)數(shù)據(jù)包的接收可以采用中斷的方式來實(shí)現(xiàn),這種方式是一種比較好的方式。一般的網(wǎng)卡芯片都有中斷功能,即當(dāng)網(wǎng)卡接收到一個數(shù)據(jù)包后,它可以產(chǎn)生中斷信號告訴控制器自己接收到一個數(shù)據(jù)包??刂破鞔藭r啟動一個讀取數(shù)據(jù)包時序,就能有效的讀取到非空數(shù)據(jù)包。所以可以這樣來實(shí)現(xiàn)一個接收數(shù)據(jù)包進(jìn)程:在無數(shù)據(jù)包收到時,數(shù)據(jù)包接收進(jìn)程阻塞在一個信號量下,當(dāng)有數(shù)據(jù)包到來時,網(wǎng)卡芯片產(chǎn)生一個中斷信號,處理器進(jìn)入中斷處理,并釋放一個信號量。中斷退出后,數(shù)據(jù)包接收進(jìn)程得到信號量,并從網(wǎng)卡芯片中讀取數(shù)據(jù)包,并將數(shù)據(jù)包遞交給上層進(jìn)行處理。第二個需要注意的地方是htons(ethhdr->type)函數(shù)的使用,htons函數(shù)的功能是將一個半字長的數(shù)據(jù)從網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換到我們的處理器支持的字節(jié)順序。源碼仿真調(diào)試單步分叉執(zhí)行,寄存器異步設(shè)置斷點(diǎn),訪問位置前解釋通過堆,在格式機(jī)體系結(jié)構(gòu)和計算機(jī)通訊領(lǐng)域中,對于半子元、子元等的錄取機(jī)制有可能不同。目前通常采用的存儲機(jī)制主要有兩種:big-endian和little-endian,即總端和次端。對于總端模式,某個半字或字?jǐn)?shù)據(jù)的高位字節(jié)被鎖存在內(nèi)存的低地址端,低位字節(jié)排放在內(nèi)存的高地址端。對于微端模式,則恰好相反。由于廣泛使用的ARM處理器使用的是次端模式,而接收到的網(wǎng)絡(luò)字節(jié)數(shù)據(jù)用的是總端模式,所以這里調(diào)用函數(shù)htons實(shí)現(xiàn)總端與次端的轉(zhuǎn)換,實(shí)際就是將兩個字節(jié)交換順序即可。這樣調(diào)用htons(ethhdr->type)后,ethhdr->type的值就為0x0802或0x0808等。虛擬終端I2C可通過SPI串行通信調(diào)試器通信診斷32位操作數(shù),RXD為獲取數(shù)據(jù)接收,TXD設(shè)置總線數(shù)據(jù)發(fā)送,下位機(jī)輸入的ASCⅡ碼傳布到PB端口,主循環(huán)流程配合高級復(fù)雜的中斷程序?qū)崿F(xiàn)上位機(jī)終端網(wǎng)絡(luò)調(diào)用,分別操作Usert鍵盤加載可執(zhí)行文件,執(zhí)行路徑至編譯后的HEX文件。通信電路在終端(VirtualTerminal)不能推送工作指令,仿真則繞過硬件問題確定軟件出錯與否,遇到經(jīng)常出現(xiàn)的獨(dú)立腳收發(fā)障礙,波特率反饋錯誤隨后模擬實(shí)際運(yùn)行可節(jié)約調(diào)試時間。環(huán)路內(nèi)節(jié)點(diǎn)參數(shù)并不能和表際一一對應(yīng),需要掛接虛擬儀表,邏輯分析儀從兼容斷點(diǎn)打開調(diào)試,從通信調(diào)試器排除模擬器件DSP庫標(biāo)簽,綜合利用數(shù)字,混合,頻率特性工具,逐點(diǎn)位探測電位差,借助參數(shù)配置逐漸熟悉數(shù)據(jù)包穩(wěn)定特點(diǎn),為下一步分析留下樣本。
由等式etu=FL(D×fs)(F=542為寬時鐘速轉(zhuǎn)換因子,D為比特速率轉(zhuǎn)換因子fs為時鐘交集頻率),確定軟件基本路徑延時時間,示波器可直觀觀測數(shù)據(jù)I/O返回復(fù)位數(shù)據(jù)波形變化,定為初始化ATR(Aquire To Reset),串口資源占比高,資源極為有限,通用字符T0協(xié)議下數(shù)據(jù)交回可靈活移植,滿足SELEE命令逐層選擇將要操作的存儲區(qū),返回UPDATE值為述及6E2A內(nèi)部文件標(biāo)識號即滿足操作組指條件,將此文件寫操作子類封裝為函數(shù),在主程序作為EEPROM擴(kuò)展的子模塊和測試函數(shù)擬代碼。軟件功能靠多排插針座伺間斷,用于程序測試則先激發(fā)顯示輸出。主要靠I/O板疊式結(jié)構(gòu)擴(kuò)展功能反射模塊引出信號,雖然也可用5.2V直供USB板,但舊式外部供電較易損壞,解決信號交換貼片電路上傳之前還是引出跨轉(zhuǎn)板7.3V較為穩(wěn)妥。
插集成板前空送輻電,1.9V反面則攢受短路和浮接,程序和控制塊匹配在BootLoaderFlash引導(dǎo)區(qū)指針迷失前,無需按照關(guān)鍵步驟加上傳感信號就不會有反應(yīng),預(yù)裝留有下載口熱電指示會常亮,頭文件里冗長電變量定義,變量初始化運(yùn)行一次,loop的主要工作實(shí)際反復(fù)執(zhí)行副本,接電后才能在引腳載入環(huán)境信號。仔細(xì)封包編譯結(jié)果,接地測試寫狀態(tài),AVR直接編程代碼72C8,一般十秒后離線下沖,用于FLASH固化,應(yīng)見端口號操作響應(yīng)。
以上過程在環(huán)境設(shè)備信號分析中可解釋較多控制不良的問題,方便對應(yīng)各種不確定控制問題閃現(xiàn)時的捕獲和再現(xiàn),具有較完善的實(shí)際問題分析參考意義。
參考文獻(xiàn):
[1]《數(shù)字控制器》 劉廣義 2006.7.
作者簡介:馬田(1981.01--);性別:男,籍貫:天津,學(xué)歷:本科,畢業(yè)于天津理工大學(xué);現(xiàn)有職稱:中級工程師;研究方向:通信無線電。