數(shù)據(jù)采集板通信協(xié)議及測試_第1頁
數(shù)據(jù)采集板通信協(xié)議及測試_第2頁
數(shù)據(jù)采集板通信協(xié)議及測試_第3頁
數(shù)據(jù)采集板通信協(xié)議及測試_第4頁
數(shù)據(jù)采集板通信協(xié)議及測試_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精品數(shù)據(jù)采集板通訊命令測試版本歷史:版本設計審核批準備注V0.1田云鈞2010-3-2.初次制定。感謝下載載1測試平臺本測試平臺依賴于新版數(shù)據(jù)采集卡,整個通信可以劃分為兩部分,PC機到單片機的串口通信,以及單片機到FPGA的SPI通信。2軟件環(huán)境對于用戶而言,所有測試命令基于串口精靈發(fā)送,通過串口精靈返回的數(shù)值來判斷命令發(fā)送正確與否。串口通訊約定1,計算機作為主機,數(shù)據(jù)采集板作為從機。2,所有的通訊都由主機發(fā)起,以從機的應答結束。3,波特率設置為9600,一個起始位,一個停止位,無校驗位。4,當出現(xiàn)通信錯誤時(超時,校驗錯,無應答),采用重傳作為處理手段。主機發(fā)送內(nèi)容定義引導字符設備地址子地址

2、命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容累加和長度11111n1內(nèi)容0xAA0xA0XXXXX從機回復內(nèi)容的定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容累加和長度11111n1內(nèi)容0x55XXXXXX設備地址:數(shù)據(jù)采集板的地址定義為0XA0。子地址:不同設備內(nèi)部不同單元,該設計中子地址定義,默認為0x00.命令字符:詳細定義見下文。數(shù)據(jù)長度:數(shù)據(jù)的長度,不包括檢驗和的長度,有可能是0。當數(shù)據(jù)長度是0時,“數(shù)據(jù)內(nèi)容”部分不存在。數(shù)據(jù)內(nèi)容:當數(shù)據(jù)長度不為0時為所發(fā)送的數(shù)據(jù),不能大于255字節(jié)。累加和:以簡單的累加和作為校驗。只針對數(shù)據(jù)部分進行累加,如果數(shù)據(jù)長度為1,累加和就等于數(shù)據(jù)內(nèi)容,如果數(shù)據(jù)長度為0,不

3、僅數(shù)據(jù)部分內(nèi)容為空,累加和部分也為空。3測試內(nèi)容所有的命令可以劃分為兩類:公共的通訊控制命令以及針對數(shù)據(jù)采集板的控制命令。公共通訊控制命令可分為以下四條1 設置通訊波特率2 查詢從機狀態(tài)3 獲取從機固件版本信息4 獲取固件SN碼針對數(shù)據(jù)采集板的控制命令有以下三條1 讀取單片機狀態(tài)2 設置數(shù)據(jù)采集板工作模式3 讀取FPGA內(nèi)部狀態(tài)對于控制命令的第二條和第三條而言,其測試內(nèi)容都包含兩部分內(nèi)容:上位機到單片機的通信驗證以及單片機到FPGA的驗證。上位機到單片機的通訊方式采用RS232方式,波特率為9600,一個起始位,8個數(shù)據(jù)位,以及一個停止位,無校驗。上位機到單片機的通信方式都會有應答,具體的應答

4、方式在下面的測試內(nèi)容中有詳細介紹。單片機到FPGA的通信方式采用SPI方式,CS低有效,SCLK的上升沿采集數(shù)據(jù)。4控制命令測試數(shù)據(jù)采集板的地址是0xA0。單片機僅僅是一個命令轉達的單元。其負責將接收到的控制信息轉發(fā)給FPGA。主機給單片機發(fā)送的內(nèi)容定義表4-12:主機發(fā)送內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度11111X1內(nèi)容0xAA0xA00x000xXX0xXXXXX表4-13:數(shù)據(jù)采集板從機回復內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度11111X1內(nèi)容0x550xA00x000xXX0xXXXXX上位機與單片機通訊的命令字符與數(shù)據(jù)定義項

5、目子地址方向命令數(shù)據(jù)說明10xA0H下行0x10H0BYTE讀單片機狀態(tài)。0xA0H上行0x10H1BYTE返回單片機狀態(tài)數(shù)據(jù)。20xA0H下行0x20H13BYTE設置參數(shù)。0xA0H上行0x20H1BYTE返回應答。30xA0H下行0x30H1BYTE讀取FPGA內(nèi)部狀態(tài)。(8bit)0xA0H上行0x30H1BYTE返回應答。4.1工作模式設置命令測試該命令主要完成對視頻采集模式的參數(shù)設置,包括對FPGA讀寫操作設定,設置LVDS行場有效的時間參數(shù),幀頭檢測參數(shù)設置,設置LVDS的單雙通道,分辨率以及制式,VIDEO行場有效時間參數(shù)設置。該命令的數(shù)據(jù)內(nèi)容共有13字節(jié)4.1.1參數(shù)定義參照

6、數(shù)據(jù)采集板的設計概要。將工作參數(shù)寫入到FPGA內(nèi)部,該命令包含13個字節(jié),下面的內(nèi)容為各個字節(jié)中的所代表的命令的含義。1)工作模式寄存器定義bit7bit6bit5bi4bit3bit2bit1bit0R/W_SWITCHS/D8/10format保留保留保留R/W_:控制單片機對FPGA的操作,如果是寫操作,那么主機必須依次執(zhí)行該命令以及執(zhí)行命令字符為30-B0的所有命令,每寫一個命令字節(jié)成功,返回一個成功標志。如果是讀操作,那么單片機返回FPGA內(nèi)部狀態(tài)內(nèi)容。SWITCH:選擇當前處理的是CVBS信號還是LVDS信號,1為CVBS,0為LVDSS/D:針對LVDS信號而言,S為single

7、,當該位為1時,選擇單通道,否則為雙通道8/10:顏色分辨率選擇,8為8bit,10為10bit。該位為1時,選擇8bit,否則為10bit。format:選擇電視制式,0為VESA,1為JEADA.我們需要設置數(shù)據(jù)采集板工作在LVDS信號采集,雙通道,分辨率為8bit,VESA制式下,因此,設定該寄存器內(nèi)容為0x10如果我們要設置數(shù)據(jù)采集板工作在VIDEO信號采集下,那么應該設置該寄存器值為402)行有效時間參數(shù)定義為兩字節(jié),一共libitR1B2Bit73Bit20Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RsvHDHDHDHDHDHDHDHDHD0XXxxxxxxx

8、此次調(diào)試使用到的信號源的分辨率為1366*768,因此設置行有效時間參數(shù)為1366的十六進制表示,0x556,其中高三位送給字節(jié)1,低八位送給字節(jié)2,因此,需要發(fā)送兩個字節(jié),0x05,0x56對于VIDEO而言,行有效設置為720,其十六進制表示為0x2D0,即發(fā)送兩個字節(jié),0x02,0xD03)場有效時間參數(shù)定義為兩字節(jié),一共iibitR1B2Bit73Bit20Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RsvVDVDVDVDVDVDVDVDVD0XXxxxxxxx同理設置場有效時間參數(shù)為768的十六進制0x300,即高兩位送給字節(jié)1,低八位送個字節(jié)2,即發(fā)送兩個字節(jié)0

9、x03,0x00.對于VIDEO而言,場有效設置為576,其十六進制表示為240,則發(fā)送兩個字節(jié)0x02,0x40.行同步時間以及場同步時間暫且不用,其定義如下:4)行同步時間參數(shù)定義為兩字節(jié),一共9bitR1B2Bit71Bit0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RsvHSHSHSHSHSHSHSHSHS0XXxxxxxxx5)場同步時間參數(shù)定義為兩字節(jié),一共9bitR1B2Bit71Bit0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RsvVSVSVSVSVSVSVSVSVS0XXxxxxxxx設置這兩個寄存器為0,這里需要發(fā)送四個0x00

10、幀頭檢測參數(shù)有5位組成,我們獨用一個寄存器,用第五位表示,高三位保留6)幀頭檢測參數(shù)以及消隱消隱信號最高位定義bit7bit6bit5bi4bit3bit2bitlbit0HFP8HBP8VFP8VBP8FH3FH2FH1FH0bit3-bit0為幀頭查找設定值,bit7-bit4分別為四個消隱信號分別的最高位。7)設置行消隱的前肩(9bit)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0HFP7HFP6HFP5HFP4HFP3HFP2HFP1HFP08)設置行消隱的后肩(9bit)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0HBP7HBP6HBP5HBP

11、4HBP3HBP2HBP1HBP09)設置場消隱的前肩(9bit)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0HFP7HFP6HFP5HFP4HFP3HFP2HFP1HFP010)設置場消隱的后肩(9bit)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0HBP7HBP6HBP5HBP4HBP3HBP2HBP1HBP0對于LVDS信號采集而言,這些數(shù)據(jù)組成了工作模式設置命令即:10,05,56,03,00,00,00,00,00,0A,00,00,01,共13字節(jié)。對于CVBS信號采集而言,這些數(shù)據(jù)組成了工彳模式設置命令即:40,02,D0,02,40,00

12、,00,00,00,0A,00,00,01,共13字節(jié)1.1.2 命令設置引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度11111131LVD0xA0xA0x00x20x00x2005560300000000000A000000x4S內(nèi)A000D1B容CVB0xA0xA0x00x20x00x4002D00240000000000A000000x5FSA000D11.1.3 上位機與單片機通信單片機返回到主機的值有三類,發(fā)送完命令后,當主機接受到0x00時,表明此次通訊成功,成功的標志在于,單片機正確的解析到了完整的命令內(nèi)容,并且命令的內(nèi)容符合約定,且命令的累加和同單片機計算的累加和校

13、驗值一致,整個通信建立成功。發(fā)送完命令后,當主機接收到0xBF時,表明此次通訊不成功,但是引導字符,以及設備地址,以及命令字符都符合要求,不滿足的地方在于校驗出了問題,需要重新檢查命令內(nèi)容,并計算校驗值。發(fā)送完命令后,當主機接受到0x7F,表明此次通訊徹底失敗,即命令不是定義的類型。例如,串口助手發(fā)送正確的指令:AAA000200D1005560300000000000A00000179,共19個字節(jié),發(fā)送完畢后,串口精靈收到0x00,表明此次通訊正確但是,如果將累加和內(nèi)容或者命令內(nèi)容部分改變,即最后一個字節(jié)不再是0x4B時,串口精靈就會收到0xBF。若將指令的非數(shù)據(jù)以及校驗部分內(nèi)容部分更改(

14、例如,引導字符,設備地址,命令字符等),則返回0X7F,說明此命令不符合系統(tǒng)要求。需要注意的是,單片機僅僅在命令正確的情況下才會向FPGA發(fā)送指令,否則一直處于等待正確命令狀態(tài)。1.1.4 單片機與FPGA的SPI通信對于FPGA與單片機之間的SPI的通信正確與否,我們只能通過看現(xiàn)象來得知命令是否傳輸正確,例如,上述指令的數(shù)據(jù)內(nèi)容為1005560300000000000A000001,這串命令將通過SPI的方式發(fā)送到FPGA,在FPGA的內(nèi)部存在13字節(jié)的命令寄存器,我們可以通過檢測該寄存器的值是否為寫入的命令,為此,我們在FPGA采用比較的方式來驗證傳輸?shù)恼_性。若FPGA接受到的數(shù)據(jù)與要求

15、相符,則點亮LED,否則LED不亮。通過實驗發(fā)現(xiàn),串口助手將正確指令發(fā)出后,F(xiàn)PGA將LED點亮,驗證了SPI通信的正確性。,若發(fā)送的指令有誤,F(xiàn)PGA將不會接收到指令,因為在指令錯誤的情況下,單片機跟FPGA的SPI通信是建立不起來的。4.2 讀取單片機狀態(tài)命令4.2.1 參數(shù)定義內(nèi)部狀態(tài)寄存器定義bit7bit6bit5bi4bit3bit2bitlbit0CFGWAIT保留保留保留保留保留保留CFG:FPGA配置結束后會給單片機一個應答,若配置沒完成,該位置0,配置結束后,變?yōu)?;WAIT:等待接收命令字節(jié)狀態(tài)。只要單片機不響應中斷,那么該狀態(tài)位就會置位4.2.2 命令設置引導字符設備地

16、址子地址命令字符數(shù)據(jù)長度長度11110內(nèi)容0xAA0xA00x000x100x00發(fā)送命令AA,A0,00,10,004.2.3 上位機與單片機通信單片機將當前狀態(tài)返回給主機其格式為引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容長度111111內(nèi)容0x550xXXX0x100x01見4.2.14.3 讀取FPGA內(nèi)部狀態(tài)命令4.3.1 參數(shù)定義FPGA內(nèi)部狀態(tài)寄存器定義bit7bit6bit5bi4bit3bit2bit1bit0BUSYFHVALIDFULLEMPTY保留保留保留BUSY:當FPGA正在采集數(shù)據(jù)的過程中(即狀態(tài)機處于接受數(shù)據(jù)狀態(tài))該位置位,否則為0。FH:當狀態(tài)機處于幀頭查找

17、狀態(tài)時(異常時,將一直維持在此狀態(tài)),該位置位,否則為0.VALID:DE信號有無的標志,若DE信號一直無效,則VALID持續(xù)為0,否則VALID為1.FULL:內(nèi)部FIFO寫滿,該位置位,否則清零。EMPTY:內(nèi)部FIFO讀空,該位置位,否則清零。在數(shù)據(jù)采集過程中,正常的狀態(tài)應該是FULL,EMPYT都不為1。4.3.2 命令設置引導字符設備地址子地址命令字符數(shù)據(jù)長度長度11111內(nèi)容0xAA0xA00x000x300x00發(fā)送命令AA,A0,00,30,004.3.3 上位機與單片機通信上位機發(fā)送指令后,由單片機返回狀態(tài),具體的狀態(tài)值同上描述。當返回值滿足要求時,單片機將指令發(fā)送到FPGA

18、,并讀取FPGA狀態(tài)。4.3.4 單片機與FPGA通信FPGA將實時的內(nèi)部狀態(tài)寄存器的內(nèi)容發(fā)送到單片機。5公共通訊控制命令系統(tǒng)內(nèi)所有使用串口通訊的設備(RS232),使用如下4條公共的通訊命令,分別是設置(更改)通訊波特率命令、查詢系統(tǒng)狀態(tài)命令和獲取從機固件版本信息和固件的SN碼。所有的從機遵循同樣的控制方式,執(zhí)行同樣的控制操作和使用同樣的命令執(zhí)行時間。5.1 設置通訊波特率表4-3:主機發(fā)送內(nèi)容定義:引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度1111111內(nèi)容0xAA0xA0X0x000x010xYY0xYY表4-4:從機回復內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)

19、容校驗和長度1111111內(nèi)容0x550xA0X0x000x010xZZ0xZZ根據(jù)實際的板的信息填寫“XX”部分的內(nèi)容,本命令將在1ms內(nèi)直接返回結果。“0xYY”為實際的波特率的代碼,本系統(tǒng)支持如下的波特率,實際波特率與代碼的對應關系如下:表4-5:波特率代碼對應表:代碼0x00(默認)0x010x020x03其他波特率(bps)96003840057600115200未定義由于單片機只支持9600以及57600的波特率,因此,對于波特率的設置我們僅局限于這兩種。對于其他的波特率更改,將忽略。所有從機復位后,將使用默認的波特率,當主機設置未定義的波特率時,所有從機將維持當前波特率不變。“0

20、xZZ”為從機返回的應答,一般講,應答將有如下幾種定義(下同):0X00H:本次通訊操作成功。0X7FH:未定義的操作命令。0xBFH:本次通訊失敗,校驗錯。0xFFH:代表系統(tǒng)處于忙狀態(tài)。除“0X00H”外,從機實際上均未響應本次操作。5.2 查詢從機狀態(tài)就主機端觀察,從機具備兩個狀態(tài),分別定義為“忙”(BUSY=1)和“空閑”(BUSY=0),主機發(fā)送命令到從機時,一般必須要要求從機處于空閑狀態(tài),才可以正確接受并執(zhí)行主機發(fā)送的命令,處于忙狀態(tài),將拒絕執(zhí)行主機的命令,但有幾種特殊的命令除外,是不需要約定從機處于空閑狀態(tài)的,包括設置波特率命令和下面特別指出的命令。表4-6:主機發(fā)送內(nèi)容定義:引

21、導字符設備地址子地址命令字符數(shù)據(jù)長度長度11111內(nèi)容0xAA0xA0X0x010x00表4-7:從機回復內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度1111111內(nèi)容0x550xA0X0x010x010xZZ0xZZ主機查詢從機的狀態(tài)的命令是“0X01H主機查詢從機的狀態(tài),不需要數(shù)據(jù),所以數(shù)據(jù)長度是“0”。本命令將在1ms內(nèi)直接返回結果?!?xZZ”,返回的結果的含義如下:0X00H:本次通訊操作成功。0X7FH:未定義的操作命令。0XBFH:本次通訊失敗,校驗錯。0XFFH:代表系統(tǒng)處于忙狀態(tài)。當主機設置的上一次的操作還未執(zhí)行完畢或從機正處于比較關鍵的操作時,從機為忙狀

22、態(tài)。主機檢測從機的忙狀態(tài)的操作不是必須的,主機也可以不單獨檢測從機的忙狀態(tài),而直接發(fā)送控制命令,從從機的應答可分析出從機在主機發(fā)送控制命令時是否處于忙狀態(tài)。詳細介紹見下文。5.3 獲取從機固件版本信息表4-8:主機發(fā)送內(nèi)容定義:引導字符設備地址子地址命令字符數(shù)據(jù)長度長度11111內(nèi)容0Xaa0xA0X0x020X00表4-9:從機回復內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度11111161內(nèi)容0x550xA0X0x020x100xZZX獲取版本信息的操作總能立即返回指定固件的說明字符,而不會有“BUSY”狀態(tài)。版本信息固定為16字節(jié),采用ASCII字符標志,典型的版本信

23、息的表示方法如下:20061205VER:1.01”。依次為年(4個ASCII字符),月(2個ASCII字符),日(2個ASCII字符),“VER:”為版本引導字符,“1.01”為版本說明(4個ASCII字符)。5.4 獲取固件SN碼每一個固件都具有與其他設備不同的且唯一的SN碼,作為硬件設備的唯一標識。表4-10:主機發(fā)送內(nèi)容定義:引導字符設備地址子地址命令字符數(shù)據(jù)長度長度11111內(nèi)容0Xaa0xA0X0x030x00表4-11:從機回復內(nèi)容定義引導字符設備地址子地址命令字符數(shù)據(jù)長度數(shù)據(jù)內(nèi)容校驗和長度11111161內(nèi)容0x550xA0X0x030x100xZZX獲取版本信息的操作總能立即

24、返回指定固件的說明字符,而不會有“BUSY”狀態(tài)。SN碼固定為16字節(jié),米用ASCII字符標志。SN碼可作為設備有效性標識和參數(shù)校準的標識。目前保留。6測試結論6.1工作模式命令測試結論1.1.1 正確的命令測試發(fā)送:AA,A0,00,20,0D,10,05,56,03,00,00,00,00,00,0A,00,00,01,79AA,A0,00,20,0D,40,02,D0,02,40,00,00,00,00,0A,00,00,01,5F接收:55A00020010000現(xiàn)象:接收到55A00020010000之后,F(xiàn)PGA將LED點亮。結論:發(fā)送命令符合要求,且校驗正確,單片機將接收到命令的

25、數(shù)據(jù)內(nèi)容作累加計算后跟命令中的校驗值做比較,判斷出兩者一致后,將該命令發(fā)送給FPGA,F(xiàn)PGA將該命令數(shù)據(jù)跟標準呢指令作比較,兩者若一致,則點亮LED,此次測試LED被點亮,說明通信成功。1.1.2 校驗失敗命令測試發(fā)送:AA,A0,00,20,0D,10,05,56,03,00,00,00,00,00,0A,00,00,00,4BAA,A0,00,20,0D,40,02,D0,02,40,00,00,00,00,0A,00,00,01,1F接收:55A0002001BFBF現(xiàn)象,無結論,由于發(fā)送命令中的數(shù)據(jù)內(nèi)容為2005560300000000000A000000,其校驗和為0x79,但是命

26、令中的校驗和為4B,兩者不一致,導致通信失敗,返回數(shù)據(jù)內(nèi)容bf,標志此次通信校驗失敗。通信失敗,F(xiàn)PGA不會接收到單片機發(fā)來的指令,當然也不會點亮LED了1.1.3 未定義命令測試發(fā)送:A0,A0,00,20,0D,10,05,56,03,00,00,00,00,00,0A,00,00,01,79AA,A0,A0,20,0D,40,02,D0,02,40,00,00,00,00,0A,00,00,01,5F接收:55A00020017F7F現(xiàn)象:無結論:該命令的引導字符0xA0未定義,發(fā)送完畢后,單片機給上位機返回55A00020017F7F,代表該命令未定義,同樣,F(xiàn)PGA也不會將LED點亮,通信失敗。6.2 讀取單片機狀態(tài)命令測試結論6.2.1 正確的命令測試發(fā)送:AA,A0,00,10,00接收:55A00010018080結論:此時FPGA已配置結束,并且在發(fā)送命令的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論