www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 測試測量 > 測試測量
[導讀]前 言  DS18B2普遍都是和單片機配合使用,很少有關(guān)于DSP與DS18B20的連接的接口報道,所以此文詳細介紹了TMS320LF2407與 DS18B20的連接方法,并且很詳細的介紹了如何用C語言完成精確的軟件延時,從而完成DS18B20與

前  言

  DS18B2普遍都是和單片機配合使用,很少有關(guān)于DSP與DS18B20的連接的接口報道,所以此文詳細介紹了TMS320LF2407與 DS18B20的連接方法,并且很詳細的介紹了如何用C語言完成精確的軟件延時,從而完成DS18B20與TMS320LF2407之間的基于單線總線協(xié)議的數(shù)據(jù)通訊。

  1 DS18B20的時序

  1. 1  復位時序

  復位使用DS18B20時,首先需將其復位,然后才能執(zhí)行其它命令。復位時,主機將數(shù)據(jù)線拉為低電平并保持480us~960us,然后釋放數(shù)據(jù)線,再由上拉電阻將數(shù)據(jù)線拉高15~60us,等待DS18B20發(fā)出存在脈沖,存在脈沖有效時間為60~240us,這樣,就完成了復位操作。

  1.2  寫時序

  在主機對DS18B20寫數(shù)據(jù)時,先將數(shù)據(jù)線置為高電平,再變?yōu)榈碗娖?,該低電平?yīng)大于1us。在數(shù)據(jù)線變?yōu)榈碗娖胶?5us內(nèi),根據(jù)寫“1”或?qū)憽?” 使數(shù)據(jù)線變高或繼續(xù)為低。DS18B20將在數(shù)據(jù)線變成低電平后15us~60us內(nèi)對數(shù)據(jù)線進行采樣。要求寫入DS18B20的數(shù)據(jù)持續(xù)時間應(yīng)大于 60us而小于120us,兩次寫數(shù)據(jù)之間的時間間隔應(yīng)大于1us。

  1.3  讀時序

  讀時隙當主機從DS18B20讀數(shù)據(jù)時,主機先將數(shù)據(jù)線置為高電平,再變?yōu)榈碗娖?,該低電平?yīng)大于1us,然后釋放數(shù)據(jù)線,使其變?yōu)楦唠娖?。DS18B20在數(shù)據(jù)線從高電平變?yōu)榈碗娖降?5us內(nèi)將數(shù)據(jù)送到數(shù)據(jù)線上。主機可在15us后讀取數(shù)據(jù)線.。

  2 TMS320LF2407與DS18B20的連接

  DS18B20有三個引腳。其與TMS320LF2407A的接線圖如下。VDD管腳接5V電壓給傳感器供電。DQ管腳為數(shù)據(jù)線,與 TMS320LF2407A的IOPA6連接的同時,還要接一個4.7K的上拉電阻,并接到5V的電源上,使數(shù)據(jù)線在空閑狀態(tài)下能自動上拉為高電平。 GND管腳接地。

  3 軟件設(shè)計

  3.1 精確的軟件定時的實現(xiàn)

  眾所周知,TMS320LF2407的內(nèi)核屬于C2000系列的處理器,處理速度達到30MIPs,也就是每條指令所花的時間理論上只有33ns。但是實際情況是,由于DSP外部電路的數(shù)據(jù)處理速度和數(shù)據(jù)調(diào)用等因素,往往處理速度達不到這個數(shù)量級。那怎樣測出每條指令的處理時間從而計算出軟件延時程序的精確時間呢?計算方法如下:

  1、延時程序的C語言代碼為:

  for(loopindex=0;loopindex
其中l(wèi)oopindex 為unsigned int,無符號整形數(shù)值, N為常量,根據(jù)所要求的延時時間,計算得出。具體算法在下面給出。

  2、這個for語句在CCS中的編譯器編譯后所產(chǎn)生的匯編語言為:

LACL #0h
SACL *, 0
LACL *
SUB N(計算得到的循環(huán)次數(shù))
BCND 轉(zhuǎn)移的地址,GEQ
LACC *, 0
ADD #1h
SACL *, 0
LACL *
SUB N(計算得到的循環(huán)次數(shù))
BCND 轉(zhuǎn)移的地址,LT

  這些匯編語句所占用的時間可以計算成公式:DELAY=(9N+4)*單個指令周期。

  3、測試出一個指令周期

  系統(tǒng)所用晶振為20M,倍頻以后的時鐘頻率為40M,定時器1的分頻為1,也就是說定時器的計時周期為25ns。開啟定時器,單步運行上面的匯編語句,看定時器每次運行后所增加的數(shù)值。測試得到,在每次單步運行占一個指令周期的匯編語句后,定時器的數(shù)值增加10。也就是說,每個單指令周期的指令占用的時間為:25ns*10=250ns,也就是0.25us。

  4、延時程序的最終計算公式為:

  DELAY =(9n+4)*0.25us。

  由公式可以看出,當n=0時,DELAY=1us,當n=65535時,DELAY= 150ms。

3.2 主要程序

  由于文章篇幅的關(guān)系,這里只給出復位程序、讀字節(jié)程序和整個讀溫度的主程序,寫命令字的程序可以根據(jù)上面所述的時序自行編寫。

#define nop()   {asm( nop );}
#define DATA_PORT  PADATDIR
#define DATA_MODE  0x0040
#define  DATA_OUT   0x4000
#define  DATA_BIT   0x0040
#define PIN_HIGH()   {PADATDIR=PADATDIR|DATA_OUT|DATA_BIT;}
#define PIN_LOW()  {DATA_PORT=(PADATDIR|DATA_OUT)&(~DATA_BIT);}
#define PIN_LEAVE()  {DATA_PORT=DATA_PORT&(~DATA_OUT)|DATA_BIT;}
/* 傳感器復位程序 */
unchar reset(void)
{  unchar retval;
unint loopindex="0";
    PIN_HIGH();
    nop();nop();nop();nop(); /* 延時1us*/
PIN_LOW();
for(loopindex=0;loopindex<213;loopindex++){;} /*置總線為低電平并保持至少480us */
PIN_HIGH();
for(loopindex=0;loopindex<26;loopindex++){;} /*等電阻拉高總線并保持15-60us */
PIN_LEAVE(); /*接受應(yīng)答信號*/
nop();
if((DATA_PORT & DATA_BIT) == 0x0000)
{  retval = 0;  }
else
{  retval = 1;  }
PIN_HIGH();
    for(loopindex=0;loopindex<106;loopindex++){;} /*延時60-240us */
    return(retval); /*返回應(yīng)答信號 */
}
/* 從傳感器中讀一個字節(jié) */
void read_byte(unchar *ReadByte)       
{
    int i;
    unchar temp="0";
unint loopindex="0";   
    PIN_HIGH();
    for(i=0;i<8;i++)
    {
        temp="temp">>1;
      PIN_LOW();
  nop();nop();nop();nop(); /*延時2us */
  nop();nop();nop();nop();
  PIN_HIGH();   
  for(loopindex=0;loopindex<6;loopindex++){;}  /* 延時14us */
  PIN_LEAVE();
  nop();
  if((DATA_PORT & DATA_BIT) == 0x0000)
  {   temp="temp" & 0x7F;  }
  else
  {   temp="temp" | 0x80;  }
  PIN_HIGH();
  for(loopindex=0;loopindex<26;loopindex++){;}   /* 延時60us */
    }                       
    *ReadByte=temp;
    return;
}
/* 將讀得的溫度轉(zhuǎn)化為十進制 */
float transform(unchar *T)
{
unchar temp="0";
float temprature="0";
temp=temp|(*(T+1)<<8);
temp=temp|*T;
if((temp&0x0F800)==0x0F800)
{  temprature="0-"((~temp)+1)*0.0625; }
else
{  temprature="temp"*0.0625; } 
return(temprature);
}
/* 讀取溫度主函數(shù),返回十進制溫度數(shù) */
float read_temp()
{
Unchar buff[2];
float temprature="0";
unint loopindex="0"; 
while (reset()==1){};      /* 復位等待從機應(yīng)答 */
    write_byte(0xCC);         /* 忽略ROM匹配 */
    write_byte(0x44);          /* 發(fā)送溫度轉(zhuǎn)化命令 */
    for(loopindex=0;loopindex<65535;loopindex++){;}  /* 延時300ms,等待數(shù)模轉(zhuǎn)換 */
for(loopindex=0;loopindex<65535;loopindex++){;}
while(reset()==1){};        /* 再次復位,等待從機應(yīng)答 */
    write_byte(0xCC);         /* 忽略ROM匹配 */
    write_byte(0xBE);          /* 發(fā)送讀溫度命令 */
    read_byte(buff);           /* 讀出溫度低8位 */       
    read_byte(buff+1);         /* 讀出溫度高8位 */
    temprature="transform"(buff);
    PIN_HIGH();             /* 釋放總線 */
return(temprature);
}

  4 結(jié)束語

  DS18B20是一款非常優(yōu)秀的單總線數(shù)字式傳感器。硬件設(shè)計簡單,運行可靠。通過分析C語言編譯后的匯編語言可以很明確的計算出軟件延時的時間,從而滿足單線總線通訊的時序要求,從而可以出色的完成DSP與DS18B20通訊的軟件設(shè)計。

  5 本文創(chuàng)新點有兩個:

  1、通過C編譯器編譯出來的相應(yīng)的C語言的延時程序,從而得到其對應(yīng)的匯編語言,再通過定時器計時,能夠知道單指令周期的時間,從而能夠精確的計算出軟件延時程序的延時時間。

  2、通常DS18B20都是與單片機配合使用的,而本文則詳細的介紹了DS18B20與DSP的結(jié)合使用方法,其區(qū)別主要是在端口的操作上和延時的控制上。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

美國紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績報告。 IBM 董事長兼首席執(zhí)行官 Arvind Kri...

關(guān)鍵字: IBM 軟件 BSP 云平臺

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設(shè)計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風 ...

關(guān)鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動的最基本功能。而對于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關(guān)系的思考,同時也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機構(gòu)對在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機 CAN

要問機器人公司哪家強,波士頓動力絕對是其中的佼佼者。近來年該公司在機器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機器人會后空翻,自主爬樓梯等。這不,波士頓動力又發(fā)布了其機器人組團跳男團舞的新視頻,表演的機器人包括...

關(guān)鍵字: 機器人 BSP 工業(yè)機器人 現(xiàn)代汽車

測試測量

28633 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉