




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計劃類別 項目編號 項目技術報告課題名稱 項目主持人 承擔單位 題目:TDCGP22時間數字芯片關鍵編程算法研究與實現TDC-GP22芯片是一款皮秒級高精度時間數字轉換芯片,由于TDC-GP22內部寄存器種類繁多,所以芯片編程操作相對較復雜。為此根據TDC-GP22的SPI接口特點,并結合AVR單片機主機優勢,用高級語言編制符合SPI接口協議程序,實現對TDC-GP22的兩種主要操作,一種是按照SPI協議對芯片的寄存器進行讀取數據操作,另一種是根據SPI協議數據循環特點對芯片寄存器進行寫入數據操作。TDC-GP22實驗測試結果表明所編制程序運行完全穩定可行。關鍵詞:芯片;高級語言;單片機;接口
2、1 引言(Introduction)TDC-GP22芯片是德國ACAM公司推出的一款高分辨率時間數字轉換芯片,高分辨率時間差計算使得TDC-GP22可以用于對時間精度要求嚴格的場合,如激光測距、電纜長度測量及超聲波流量計等領域。此芯片可以通過單片機讀寫其內部寄存器來完成時間數字轉換,由于該芯片官方文檔資料比較零散,在芯片的開發和使用上帶來很多障礙,軟件程序難以調試,和單片機難以建立通信。同時TDC-GP22芯片是通過SPI(Serial Peripheral Interface)協議接口和主機建立通信,所以芯片編程上的主機程序需要嚴格遵循SPI接口協議來對TDC-GP22內部寄存器進行正確讀寫
3、,從而完成TDC-GP22的時間數字轉換過程。2 TDC-GP22的SPI接口協議(SPI interface protocolof TDC-GP22 )2.1 SPI通信協議接口簡介SPI的中文名為串行外圍接口,該協議接口是由摩托羅拉公司提出的通信接口技術;SPI是一種高速、全雙工、同步串行總線,SPI接口只占用可編程芯片的四個腳位,這四個腳位分別為主機輸入從機輸出(MISO)、主機輸出從機輸入(MOSI)、從機選擇線(SSN)及串行時鐘(SCK)。SPI協議接口的優點主要表現為信號連接線少、全雙工通信、協議相對簡單及數據傳輸速率較高。SPI協議接口主要應用在一些FLASH型可編程芯片,如模
4、數轉換器、信號處理芯片和各類單片機等。2.2 SPI通信協議接口工作原理SPI通信雙方為主從方式,既SPI通信雙方一方為主設備另一方為從設備,SPI通信網絡中可以有多個從機,但是主機只能為一個,主機通過控制從機的SSN片選端來和相應的從機建立數據通信;SPI通信雙方中的主機和從機的物理連接只要相應功能引腳對應連接即可,既主機MISO連接從機MISO,其他三類引腳也以此互相連接。SPI中的主從機的雙方移位寄存器連接成一個環形結構,主從機的數據通信通過在主機時鐘的控制下進行每次兩個8bit數據的移出和移入,數據傳輸時高位在前低位在后。2.3 TDC-GP22的SPITDC-GP22采用4線制SPI
5、接口,SSN需要強制置高電平,在每次讀寫序列之間SSN保持高電平至少要50ns;TDC-GP22只支持如下SPI模式,時鐘極性位(Clock Polarity Bit)為0和時鐘相位(Clock Phase Bit)為1。3 TDC-GP22的SPI主機選擇(SPI host selection ofTDC-GP22)SPI主機的選擇最好選擇引腳功能具有SPI功能的各類單片機,當然對于沒有SPI引腳功能的單片機也可以使用,只不過這類單片機需要在軟件程序中進行額外的SPI功能模擬,相對給開發和使用上帶來一些難度。為了簡化單片機軟件程序和SPI通信中主從機的硬件電路,此處選擇ATMEL公司的ATm
6、ega128a低功耗單片機1;ATmega128a單片機自帶SPI接口,該單片機為高性能低功耗8位單片機,工作于16MHz時性能高達16MIPS,ATmega128a自帶128K可編程Flash存儲,這樣方便使用C語言進行大容量單片機編程。ATmega128a可在3.3V電壓下穩定工作,TDC-GP22正常工作電壓也為3.3V2,這樣兩者SPI引腳就可以直接進行連接。4 TDC-GP22和AVR單片機的SPI通信算法(SPIcommunication algorithm between TDC-GP22and AVR)AVR單片機和TDC-GP22時間數字芯片之間以SPI方式通信,其中AVR單
7、片機為主機,TDC-GP22為從機。4.1 TDC-GP22算法前導TDC-GP22有七個32位的配置寄存器,每個寄存器的高24位是用作配置,是只可以寫入的,這七個寄存器用于配置TDC-GP22的相應操作。同時TDC-GP22還有相應可讀狀態的結果寄存器和狀態寄存器3,4,TDC-GP22的測量結果和測量狀態都可以通過發送操作碼0 xBX從可讀寄存器中讀取。4.2 TDC-GP22算法詳解TDC-GP22在正常運行前,必須先對其七個配置寄存器進行相應的模式配置,七個配置寄存器的配置是相互聯系制約的,在寄存器參數的配置上不能有任何沖突,否則TDC-GP22會出現運行異常的狀況。下面代碼主要是七個
8、配置寄存器的配置示例。gp22_wr_config_reg(0 x80,0 x00242000); /最大測量時間2xTref=2sgp22_wr_config_reg(0 x81,0 x19490000); /在測量模式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引腳一個虛擬開始信號上述代碼中為了測試stop2-stop1引腳時間差,所以先給start引腳一個虛擬開始信號,然后TDC-GP22的stop2和stop1引腳才開始工作。下面示例函數gp22_send_1byte(unsigned char gp22_opcode_byte)可以按照SPI協議向TDC-GP22寄存器寫入相應數據。void gp22_se
10、nd_1byte(unsigned char gp22_opcode_byte)PORTB&=(10); /TDC-GP22的SS位置低SPDR=gp22_opcode_byte;while(!(SPSR&(1spif) delay_us(8);PORTB|=(10); /將SS位置高上述函數中主機往SPDR寫入數據以移位到從機中去,串行發送結束后,SPIF置位,若此時寄存器SPCR的SPIE和全局中斷使能位置位,SPI中斷即產生。下面示例函數gp22_read_1_bytes(unsigned char read_opcode,unsigned char read_addr)為讀取TDC-g
11、p22寄存器中八位數據算法;函數中SPDR=0 xFF是每次虛寫一次寄存器,只有虛寫一次才能保證單片機和TDC-gp22二者的寄存器數據循環移位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、推出數據while(!(SPSR&(1spif) delay_us(8);return SPDR; /主機讀取數據PORTB|=(10); /將ss位置高如下函數gp22_read_status_bytes()為讀取TDC-GP22中狀態寄存器算法,算法中用到了循環結構,這樣可以保證讀取TDC-GP22狀態寄存器的多個字節數據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(!(SPSR&(1spif) delay_us(8);SPDR=0 xFF; /虛寫一次,推出數據while(!(SPSR&(1spif) delay_us(8);Result_read=SPDR; /主機讀取數據for(n=1;nn_bytes;n+) SPDR=0 xFF; /虛寫一次,推出數據while(!(SPSR&(1spif) delay_us(8);Result_read=Result_read8;Result_read |=SPDR; PORTB|=(10); /將ss位置高re
14、turn Result_read;以下函數gp22_wr_config_reg(unsigned char opcode_address,unsigned long config_reg_data)為寫狀態寄存器的示例算法,該算法中按照SPI協議規范,先寫高位字節,然后再寫低位字節。void gp22_wr_config_reg(unsigned char opcode_address,unsigned long config_reg_data)unsigned char Data_Byte_Lo=config_reg_data;/自動截取低8位進行賦值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(!(SPSR&(1spif) delay_us(8);SPDR=Data_Byte_Hi;while(!(SPSR&(1spif); delay_us(8);SPDR=Data_Byte_Mid2;while(!(SPSR&(1spif) delay_us(8);SPDR=
16、Data_Byte_Mid1;while(!(SPSR&(1spif) delay_us(8);SPDR=Data_Byte_Lo;while(!(SPSR&(1spif) delay_us(8);PORTB|=(10); /將ss位置高5 實驗測試過程(Experimental testing process)為了驗證上述算法的準確性,專門用TDC-GP22進行了雙絞線長度測試實驗;由于雙絞線可看作傳輸線,所以測量時向被測雙絞線注入一定寬度的入射矩形脈沖7,如果被測雙絞線終端開路就會產生矩形脈沖的正反射,同時將入射矩形脈沖和反射脈沖分別送入TDC-GP22的stop1、stop2引腳,通過計
17、算stop2-stop1的時間差并按如下公式即可計算出開路雙絞線的長度。其中,L為被測電纜長度,V為脈沖信號在電纜中的傳播速度,一般V為0.660.85倍光速8,約為200m/s,?t為入射脈沖與反射脈沖的時間差,具體測試數據見表1。表1 測試結果Tab.1 Test results實長時間差測試長度測試狀態5m0.048s4.8m開路10m0.1s10m開路20m0.195s19.5m開路35m0.346s34.6m開路100m0.97s97m開路表1測試結果顯示雙絞線測試長度的誤差在10%以內,該誤差范圍符合實際工程需求,測試結果也驗證了TDC-GP22算法準確穩定。6 結論(Conclu
18、sion)TDC-GP22的SPI協議接口編程必須嚴格按照SPI接口數據環狀傳輸的特點進行編程控制,否則主機和從機難以建立有效的通信。TDC-GP22主機的選擇有多種方案,這里選用了AVR系列單片機,并用C語言做了編程示范,當然也可以選用其他廠家其他型號的單片機作為控制主機,并結合相應的程序語言進行SPI接口編程。同時用測量雙絞線長度的實驗進一步驗證了算法的準確性。參考文獻(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的室內定位系統的設計及實現J.電子設計工程,2017,25(18):168-177.4 劉宇杰,李斌,劉振凱,等.基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年疼痛治療知識試題
- 幼兒園保育工作相關表格與工作制度:夏季一日生活作息制度
- 山東省沂水縣食品加工企業品牌建設研究
- 礦產資源綜合利用分析-洞察闡釋
- 陶瓷3D打印環境友好工藝-洞察闡釋
- 綠色工廠認證體系與評估標準的構建
- 基于云計算的智能化解決方案在民營企業中的應用
- 2025至2030年中國甘菊清爽面膜粉行業投資前景及策略咨詢報告
- 2025至2030年中國狩獵架行業投資前景及策略咨詢報告
- 2025至2030年中國炭條行業投資前景及策略咨詢報告
- 大模型應用大模型提示詞
- 2025福建三明經開區控股集團有限公司子公司招聘16人筆試參考題庫附帶答案詳解析集合
- 新能源充電樁建設項目可行性研究報告(案例新版)
- PMP模擬題(一)+答案
- 租戶裝修期內退租協議書
- 廣東省廣州荔灣區真光中學2025年高二下物理期末學業水平測試試題含解析
- 2025-2030全球及中國工業電源(SMPS)行業市場現狀供需分析及投資評估規劃分析研究報告
- 交通強國背景下的智慧交通發展趨勢預測
- 七匹狼存貨管理:供應鏈視角下的分析
- 物流倉儲規劃方案設計
- 2025年應用統計與數據科學考試試卷及答案
評論
0/150
提交評論