版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)劃類別 項(xiàng)目編號(hào) 項(xiàng)目技術(shù)報(bào)告課題名稱 項(xiàng)目主持人 承擔(dān)單位 題目:TDCGP22時(shí)間數(shù)字芯片關(guān)鍵編程算法研究與實(shí)現(xiàn)TDC-GP22芯片是一款皮秒級(jí)高精度時(shí)間數(shù)字轉(zhuǎn)換芯片,由于TDC-GP22內(nèi)部寄存器種類繁多,所以芯片編程操作相對(duì)較復(fù)雜。為此根據(jù)TDC-GP22的SPI接口特點(diǎn),并結(jié)合AVR單片機(jī)主機(jī)優(yōu)勢(shì),用高級(jí)語言編制符合SPI接口協(xié)議程序,實(shí)現(xiàn)對(duì)TDC-GP22的兩種主要操作,一種是按照SPI協(xié)議對(duì)芯片的寄存器進(jìn)行讀取數(shù)據(jù)操作,另一種是根據(jù)SPI協(xié)議數(shù)據(jù)循環(huán)特點(diǎn)對(duì)芯片寄存器進(jìn)行寫入數(shù)據(jù)操作。TDC-GP22實(shí)驗(yàn)測(cè)試結(jié)果表明所編制程序運(yùn)行完全穩(wěn)定可行。關(guān)鍵詞:芯片;高級(jí)語言;單片機(jī);接口
2、1 引言(Introduction)TDC-GP22芯片是德國(guó)ACAM公司推出的一款高分辨率時(shí)間數(shù)字轉(zhuǎn)換芯片,高分辨率時(shí)間差計(jì)算使得TDC-GP22可以用于對(duì)時(shí)間精度要求嚴(yán)格的場(chǎng)合,如激光測(cè)距、電纜長(zhǎng)度測(cè)量及超聲波流量計(jì)等領(lǐng)域。此芯片可以通過單片機(jī)讀寫其內(nèi)部寄存器來完成時(shí)間數(shù)字轉(zhuǎn)換,由于該芯片官方文檔資料比較零散,在芯片的開發(fā)和使用上帶來很多障礙,軟件程序難以調(diào)試,和單片機(jī)難以建立通信。同時(shí)TDC-GP22芯片是通過SPI(Serial Peripheral Interface)協(xié)議接口和主機(jī)建立通信,所以芯片編程上的主機(jī)程序需要嚴(yán)格遵循SPI接口協(xié)議來對(duì)TDC-GP22內(nèi)部寄存器進(jìn)行正確讀寫
3、,從而完成TDC-GP22的時(shí)間數(shù)字轉(zhuǎn)換過程。2 TDC-GP22的SPI接口協(xié)議(SPI interface protocolof TDC-GP22 )2.1 SPI通信協(xié)議接口簡(jiǎn)介SPI的中文名為串行外圍接口,該協(xié)議接口是由摩托羅拉公司提出的通信接口技術(shù);SPI是一種高速、全雙工、同步串行總線,SPI接口只占用可編程芯片的四個(gè)腳位,這四個(gè)腳位分別為主機(jī)輸入從機(jī)輸出(MISO)、主機(jī)輸出從機(jī)輸入(MOSI)、從機(jī)選擇線(SSN)及串行時(shí)鐘(SCK)。SPI協(xié)議接口的優(yōu)點(diǎn)主要表現(xiàn)為信號(hào)連接線少、全雙工通信、協(xié)議相對(duì)簡(jiǎn)單及數(shù)據(jù)傳輸速率較高。SPI協(xié)議接口主要應(yīng)用在一些FLASH型可編程芯片,如模
4、數(shù)轉(zhuǎn)換器、信號(hào)處理芯片和各類單片機(jī)等。2.2 SPI通信協(xié)議接口工作原理SPI通信雙方為主從方式,既SPI通信雙方一方為主設(shè)備另一方為從設(shè)備,SPI通信網(wǎng)絡(luò)中可以有多個(gè)從機(jī),但是主機(jī)只能為一個(gè),主機(jī)通過控制從機(jī)的SSN片選端來和相應(yīng)的從機(jī)建立數(shù)據(jù)通信;SPI通信雙方中的主機(jī)和從機(jī)的物理連接只要相應(yīng)功能引腳對(duì)應(yīng)連接即可,既主機(jī)MISO連接從機(jī)MISO,其他三類引腳也以此互相連接。SPI中的主從機(jī)的雙方移位寄存器連接成一個(gè)環(huán)形結(jié)構(gòu),主從機(jī)的數(shù)據(jù)通信通過在主機(jī)時(shí)鐘的控制下進(jìn)行每次兩個(gè)8bit數(shù)據(jù)的移出和移入,數(shù)據(jù)傳輸時(shí)高位在前低位在后。2.3 TDC-GP22的SPITDC-GP22采用4線制SPI
5、接口,SSN需要強(qiáng)制置高電平,在每次讀寫序列之間SSN保持高電平至少要50ns;TDC-GP22只支持如下SPI模式,時(shí)鐘極性位(Clock Polarity Bit)為0和時(shí)鐘相位(Clock Phase Bit)為1。3 TDC-GP22的SPI主機(jī)選擇(SPI host selection ofTDC-GP22)SPI主機(jī)的選擇最好選擇引腳功能具有SPI功能的各類單片機(jī),當(dāng)然對(duì)于沒有SPI引腳功能的單片機(jī)也可以使用,只不過這類單片機(jī)需要在軟件程序中進(jìn)行額外的SPI功能模擬,相對(duì)給開發(fā)和使用上帶來一些難度。為了簡(jiǎn)化單片機(jī)軟件程序和SPI通信中主從機(jī)的硬件電路,此處選擇ATMEL公司的ATm
6、ega128a低功耗單片機(jī)1;ATmega128a單片機(jī)自帶SPI接口,該單片機(jī)為高性能低功耗8位單片機(jī),工作于16MHz時(shí)性能高達(dá)16MIPS,ATmega128a自帶128K可編程Flash存儲(chǔ),這樣方便使用C語言進(jìn)行大容量單片機(jī)編程。ATmega128a可在3.3V電壓下穩(wěn)定工作,TDC-GP22正常工作電壓也為3.3V2,這樣兩者SPI引腳就可以直接進(jìn)行連接。4 TDC-GP22和AVR單片機(jī)的SPI通信算法(SPIcommunication algorithm between TDC-GP22and AVR)AVR單片機(jī)和TDC-GP22時(shí)間數(shù)字芯片之間以SPI方式通信,其中AVR單
7、片機(jī)為主機(jī),TDC-GP22為從機(jī)。4.1 TDC-GP22算法前導(dǎo)TDC-GP22有七個(gè)32位的配置寄存器,每個(gè)寄存器的高24位是用作配置,是只可以寫入的,這七個(gè)寄存器用于配置TDC-GP22的相應(yīng)操作。同時(shí)TDC-GP22還有相應(yīng)可讀狀態(tài)的結(jié)果寄存器和狀態(tài)寄存器3,4,TDC-GP22的測(cè)量結(jié)果和測(cè)量狀態(tài)都可以通過發(fā)送操作碼0 xBX從可讀寄存器中讀取。4.2 TDC-GP22算法詳解TDC-GP22在正常運(yùn)行前,必須先對(duì)其七個(gè)配置寄存器進(jìn)行相應(yīng)的模式配置,七個(gè)配置寄存器的配置是相互聯(lián)系制約的,在寄存器參數(shù)的配置上不能有任何沖突,否則TDC-GP22會(huì)出現(xiàn)運(yùn)行異常的狀況。下面代碼主要是七個(gè)
8、配置寄存器的配置示例。gp22_wr_config_reg(0 x80,0 x00242000); /最大測(cè)量時(shí)間2xTref=2sgp22_wr_config_reg(0 x81,0 x19490000); /在測(cè)量模式1下Stop CH2Stop CH1gp22_wr_config_reg(0 x82,0 xE0000000); /通過Timeout給出中斷gp22_wr_config_reg(0 x83,0 x00000000);gp22_wr_config_reg(0 x84,0 x20000000);gp22_wr_config_reg(0 x85,0 x10000000); /EN
9、_STARTNOISE=1,switch ongp22_wr_config_reg(0 x86,0 x00000000);gp22_send_1byte(0 x70); /初始化PORTF|=(12); PORTF&=(12);/給start引腳一個(gè)虛擬開始信號(hào)上述代碼中為了測(cè)試stop2-stop1引腳時(shí)間差,所以先給start引腳一個(gè)虛擬開始信號(hào),然后TDC-GP22的stop2和stop1引腳才開始工作。下面示例函數(shù)gp22_send_1byte(unsigned char gp22_opcode_byte)可以按照SPI協(xié)議向TDC-GP22寄存器寫入相應(yīng)數(shù)據(jù)。void gp22_se
10、nd_1byte(unsigned char gp22_opcode_byte)PORTB&=(10); /TDC-GP22的SS位置低SPDR=gp22_opcode_byte;while(?。⊿PSR&(1spif) delay_us(8);PORTB|=(10); /將SS位置高上述函數(shù)中主機(jī)往SPDR寫入數(shù)據(jù)以移位到從機(jī)中去,串行發(fā)送結(jié)束后,SPIF置位,若此時(shí)寄存器SPCR的SPIE和全局中斷使能位置位,SPI中斷即產(chǎn)生。下面示例函數(shù)gp22_read_1_bytes(unsigned char read_opcode,unsigned char read_addr)為讀取TDC-g
11、p22寄存器中八位數(shù)據(jù)算法;函數(shù)中SPDR=0 xFF是每次虛寫一次寄存器,只有虛寫一次才能保證單片機(jī)和TDC-gp22二者的寄存器數(shù)據(jù)循環(huán)移位5。unsigned char gp22_read_1_bytes(unsigned char read_opcode,unsigned char read_addr)unsigned char read_opcode_addr=read_opcode|read_addr;PORTB&=(10); /ss置低SPDR=read_opcode_addr;while(!(SPSR&(1spif) delay_us(8);SPDR=0 xFF; /虛寫一次,
12、推出數(shù)據(jù)while(?。⊿PSR&(1spif) delay_us(8);return SPDR; /主機(jī)讀取數(shù)據(jù)PORTB|=(10); /將ss位置高如下函數(shù)gp22_read_status_bytes()為讀取TDC-GP22中狀態(tài)寄存器算法,算法中用到了循環(huán)結(jié)構(gòu),這樣可以保證讀取TDC-GP22狀態(tài)寄存器的多個(gè)字節(jié)數(shù)據(jù)6。unsigned int gp22_read_status_bytes()int n;unsigned int Result_read=0;unsigned char n_bytes=2;unsigned char read_opcode_addr=0 xB0|0 x
13、04;PORTB&=(10); /ss位置低SPDR=read_opcode_addr;while(?。⊿PSR&(1spif) delay_us(8);SPDR=0 xFF; /虛寫一次,推出數(shù)據(jù)while(!(SPSR&(1spif) delay_us(8);Result_read=SPDR; /主機(jī)讀取數(shù)據(jù)for(n=1;nn_bytes;n+) SPDR=0 xFF; /虛寫一次,推出數(shù)據(jù)while(?。⊿PSR&(1spif) delay_us(8);Result_read=Result_read8;Result_read |=SPDR; PORTB|=(10); /將ss位置高re
14、turn Result_read;以下函數(shù)gp22_wr_config_reg(unsigned char opcode_address,unsigned long config_reg_data)為寫狀態(tài)寄存器的示例算法,該算法中按照SPI協(xié)議規(guī)范,先寫高位字節(jié),然后再寫低位字節(jié)。void gp22_wr_config_reg(unsigned char opcode_address,unsigned long config_reg_data)unsigned char Data_Byte_Lo=config_reg_data;/自動(dòng)截取低8位進(jìn)行賦值unsigned char Data_B
15、yte_Mid1=config_reg_data8;unsigned char Data_Byte_Mid2=config_reg_data16;unsigned char Data_Byte_Hi=config_reg_data24;PORTB&=(10); /ss位置低SPDR=opcode_address;while(?。⊿PSR&(1spif) delay_us(8);SPDR=Data_Byte_Hi;while(!(SPSR&(1spif); delay_us(8);SPDR=Data_Byte_Mid2;while(?。⊿PSR&(1spif) delay_us(8);SPDR=
16、Data_Byte_Mid1;while(?。⊿PSR&(1spif) delay_us(8);SPDR=Data_Byte_Lo;while(?。⊿PSR&(1spif) delay_us(8);PORTB|=(10); /將ss位置高5 實(shí)驗(yàn)測(cè)試過程(Experimental testing process)為了驗(yàn)證上述算法的準(zhǔn)確性,專門用TDC-GP22進(jìn)行了雙絞線長(zhǎng)度測(cè)試實(shí)驗(yàn);由于雙絞線可看作傳輸線,所以測(cè)量時(shí)向被測(cè)雙絞線注入一定寬度的入射矩形脈沖7,如果被測(cè)雙絞線終端開路就會(huì)產(chǎn)生矩形脈沖的正反射,同時(shí)將入射矩形脈沖和反射脈沖分別送入TDC-GP22的stop1、stop2引腳,通過計(jì)
17、算stop2-stop1的時(shí)間差并按如下公式即可計(jì)算出開路雙絞線的長(zhǎng)度。其中,L為被測(cè)電纜長(zhǎng)度,V為脈沖信號(hào)在電纜中的傳播速度,一般V為0.660.85倍光速8,約為200m/s,?t為入射脈沖與反射脈沖的時(shí)間差,具體測(cè)試數(shù)據(jù)見表1。表1 測(cè)試結(jié)果Tab.1 Test results實(shí)長(zhǎng)時(shí)間差測(cè)試長(zhǎng)度測(cè)試狀態(tài)5m0.048s4.8m開路10m0.1s10m開路20m0.195s19.5m開路35m0.346s34.6m開路100m0.97s97m開路表1測(cè)試結(jié)果顯示雙絞線測(cè)試長(zhǎng)度的誤差在10%以內(nèi),該誤差范圍符合實(shí)際工程需求,測(cè)試結(jié)果也驗(yàn)證了TDC-GP22算法準(zhǔn)確穩(wěn)定。6 結(jié)論(Conclu
18、sion)TDC-GP22的SPI協(xié)議接口編程必須嚴(yán)格按照SPI接口數(shù)據(jù)環(huán)狀傳輸?shù)奶攸c(diǎn)進(jìn)行編程控制,否則主機(jī)和從機(jī)難以建立有效的通信。TDC-GP22主機(jī)的選擇有多種方案,這里選用了AVR系列單片機(jī),并用C語言做了編程示范,當(dāng)然也可以選用其他廠家其他型號(hào)的單片機(jī)作為控制主機(jī),并結(jié)合相應(yīng)的程序語言進(jìn)行SPI接口編程。同時(shí)用測(cè)量雙絞線長(zhǎng)度的實(shí)驗(yàn)進(jìn)一步驗(yàn)證了算法的準(zhǔn)確性。參考文獻(xiàn)(References)1 Microchip Technology.ATmega128A datasheet completeEB/OL.https:/wwwproducts/en/ATmega128A,2016-12-10.2 Acam-messelectronic gmbh.TDC-GP22 ultrasonic flow converter datasheetEB/OL.https:/tdc-gp22,2014-03-13.3 莫朗,朱建良,薄煜明.基于TDC-GP22的室內(nèi)定位系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)J.電子設(shè)計(jì)工程,2017,25(18):168-177.4 劉宇杰,李斌,劉振凱,等.基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 褲子撐架項(xiàng)目營(yíng)銷計(jì)劃書
- 科學(xué)用棱鏡市場(chǎng)發(fā)展前景分析及供需格局研究預(yù)測(cè)報(bào)告
- 螺旋扳手市場(chǎng)發(fā)展前景分析及供需格局研究預(yù)測(cè)報(bào)告
- 云電子商務(wù)服務(wù)行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 書簽產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 建筑的施工和維修行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 纜車細(xì)分市場(chǎng)深度研究報(bào)告
- 太陽(yáng)鏡出租行業(yè)經(jīng)營(yíng)分析報(bào)告
- 花園水管用噴霧器項(xiàng)目營(yíng)銷計(jì)劃書
- 紙板棺材市場(chǎng)發(fā)展前景分析及供需格局研究預(yù)測(cè)報(bào)告
- 粉煤灰的主要特性
- 變電站工程鋼結(jié)構(gòu)安裝工程施工方案
- 灌注樁后注漿施工技術(shù)規(guī)程
- LX-2010高壓電網(wǎng)系統(tǒng)設(shè)計(jì)方案(看守所、監(jiān)獄)
- 精選薛店好聲音ktv組織機(jī)構(gòu)章程資料
- 電梯廣告效果評(píng)估分析
- 光伏電站檢測(cè)報(bào)告模板
- 淡雅古典詩(shī)詞中國(guó)風(fēng)PPT模板
- 施工方案-懸挑平臺(tái)施工方案
- 基于學(xué)科核心素養(yǎng)下提升小學(xué)生英語語言能力的路徑研究
- 標(biāo)準(zhǔn)電線平方數(shù)和直徑一覽表
評(píng)論
0/150
提交評(píng)論