<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 智能化多路串行數(shù)據(jù)采集/傳輸模塊的設(shè)計

          智能化多路串行數(shù)據(jù)采集/傳輸模塊的設(shè)計

          ——
          作者:廣州市光機電工程研究中心 行聯(lián)合 廣州市方統(tǒng)生物科技有限公司 關(guān) 強 時間:2007-01-26 來源:《世界電子元器件》 收藏

          引言

          隨著電子技術(shù)的不斷發(fā)展,目前對各種物理量的檢測和控制都可得以實現(xiàn)。微機檢測控制系統(tǒng)不僅運用到航天航空、機器人技術(shù)、紡織機械、食品加工等工業(yè)過程控制,而且已經(jīng)成為日常各種家用電器當(dāng)中的主要組成部分。其中,a/d(模擬數(shù)字轉(zhuǎn)換)設(shè)備起著十分重要的作用。這樣,一個系統(tǒng)中就會需要更多的a/d設(shè)備。一般是用擴(kuò)展一塊或多塊a/d采集卡的方法去實現(xiàn)。當(dāng)模擬量較少或是溫度、壓力等緩變信號場合,采用總線型a/d卡并不是最合適、最經(jīng)濟(jì)的方案。這里介紹一種以at89c2051單片機為核心,采用tlc2543l 12位串行a/d轉(zhuǎn)換器構(gòu)成的采樣,該的采樣數(shù)據(jù)由單片機串口經(jīng)電平轉(zhuǎn)換后送到上位機(pc機)的串口com1或com2,形成一種串行數(shù)據(jù)采集串行數(shù)據(jù)傳輸?shù)姆绞健?/p>本文引用地址:http://www.ex-cimer.com/article/20700.htm


          主要元件功能介紹

          at89c2051單片機

          at89c2051是atmel公司推出的一種性能價格比極高的 8位單片機,其指令系統(tǒng)與mcs-51系列完全兼容。引腳排列如圖1所示。

          tlc2543l串行a/d轉(zhuǎn)換器

          tlc2543l 采用spi串行接口總線,spi串行接口總線由motorola公司提出,它是一種三線同步接口,分別為同步信號、輸入信號和輸出信號。另外芯片還有一根片選線,單片機通過片選線選通tlc2543l。其中,clk為同步時鐘脈沖,cs為片選線,din為單片機的數(shù)據(jù)輸出和tlc2543l的數(shù)據(jù)輸入線,dout為單片機的數(shù)據(jù)輸入線和tlc2543l的數(shù)據(jù)輸出線。圖2為tlc2543l時序圖。tlc2543l 是全雙工的,即數(shù)據(jù)的發(fā)送和接收可同時進(jìn)行。如果只是對tlc2543l寫數(shù)據(jù),單片機可以丟棄同時讀入的數(shù)據(jù);反之,如果只讀數(shù)據(jù),可以在命令字節(jié)后,寫入任意數(shù)據(jù)。數(shù)據(jù)傳送以字節(jié)為單位,并采用高位在前的格式。

          采用ti公司的tlc2543l 12位串行a/d轉(zhuǎn)換器,使用開關(guān)電容逐次逼近法完成a/d轉(zhuǎn)換過程。串行輸入結(jié)構(gòu),能夠大大節(jié)省51系列單片機i/o資源,且價格適中。其特點有:

          (1) 11個模擬輸入通道;

          (2) 轉(zhuǎn)換時間10 s;

          (3) 12位分辨率a/d轉(zhuǎn)換器;

          (4) 3路內(nèi)置自測試方式;

          (5) 采樣率為66kbps;

          (6) 線性誤差+1lsb(max)

          (7) 有轉(zhuǎn)換結(jié)束(eoc)輸出;

          (8) 具有單、雙極性輸出;

          (9) 可編程的msb或lsb前導(dǎo);

          (10)可編程的輸出數(shù)據(jù)長度。 tlc2543l的引腳排列如圖3所示。圖3中ain0~ain10為模擬輸入端; 為片選端;din 為串行數(shù)據(jù)輸入端;dout為a/d轉(zhuǎn)換結(jié)果的三態(tài)串行輸出端;eoc為轉(zhuǎn)換結(jié)束端;clk為i/o時鐘;ref+為正基準(zhǔn)電壓端;ref-為負(fù)基準(zhǔn)電壓端;vcc為電源;gnd為地。

          電平轉(zhuǎn)換器max232c

          max232c為rs-232收發(fā)器,簡單易用,單+5v電源供電,僅需外接幾個電容即可完成從ttl電平到rs-232電平的轉(zhuǎn)換,引腳排列如圖4所示。

          硬件設(shè)計

          硬件電路如圖5所示。

          單片機at89c2051是整個系統(tǒng)的核心,tlc2543l對輸入的模擬信號進(jìn)行采集,轉(zhuǎn)換結(jié)果由單片機通過p3.5(9腳)接收,ad芯片的通道選擇和方式數(shù)據(jù)通過p3.4(8腳)輸入到其內(nèi)部的一個8位地址和控制寄存器,單片機采集的數(shù)據(jù)通過串口(3、2腳)經(jīng)max232c轉(zhuǎn)換成rs232電平向上位機傳輸。


          單片機軟件設(shè)計

          單片機程序主要包括串行數(shù)據(jù)采集/傳輸模塊的系統(tǒng)信息、通道數(shù)、采集周期和通訊協(xié)議定義,以及數(shù)據(jù)采集和傳輸?shù)臉?biāo)準(zhǔn)子程序。

          tlc2543l的通道選擇和方式數(shù)據(jù)為8位,其功能為:d7、d6、d5和d4用來選擇要求轉(zhuǎn)換的通道,d7d6d5d4=0000時選擇0通道,d7d6d5d4=0001時選擇1通道,依次類推;d3和d2用來選擇輸出數(shù)據(jù)長度,本程序選擇輸出數(shù)據(jù)長度為12位,即d3d2=00或d3d2=10;d1,d0選擇輸入數(shù)據(jù)的導(dǎo)前位,d1d0=00選擇高位導(dǎo)前。

          tlc2543l在每次i/o周期讀取的數(shù)據(jù)都是上次轉(zhuǎn)換的結(jié)果,當(dāng)前的轉(zhuǎn)換結(jié)果在下一個i/o周期中被串行移出。第一次讀數(shù)由于內(nèi)部調(diào)整,讀取的轉(zhuǎn)換結(jié)果可能不準(zhǔn)確,應(yīng)丟棄。

          數(shù)據(jù)采集程序如下:
          sbit datain=p1^1;
          sbit clock=p1^0;
          sbit dataout=p1^2;
          sbit cs=p1^3;
          bit datain_a_bit0()
          { bit m=0;
          dataout=1;
          m=dataout;
          datain=0;
          nop();
          clock=1;
          nop();
          clock=0;
          return(m);
          }
          bit datain_a_bit1()
          { bit m=0;
          dataout=1;
          m=dataout;
          datain=1;
          nop();
          clock=1;
          nop();
          clock=0;
          return(m);
          }

          單片機通過編程產(chǎn)生串行時鐘,并按時序發(fā)送與接收數(shù)據(jù)位,完成通道方式/通道數(shù)據(jù)的寫入和轉(zhuǎn)換結(jié)果的讀出,程序如下:

          unsigned int tlc2543l(unsigned char ch)
          {unsigned char i,chch=0;
          unsigned int xdata xxx=0;
          unsigned int xdata y=0;
          cs=0;
          chch=ch<<4;
          y=chch;
          y<<=8;
          i=0;
          while(i<12)
          {if((y&0x8000)==0)
          {if(datain_a_bit0()==0) xxx&=0xfffe;
          else xxx|=0x0001;
          if(i!=11) xxx<<=1;
          }
          else
          {if(datain_a_bit1()==0) xxx&=0xfffe;
          else xxx|=0x0001;
          if(i!=11) xxx<<=1;
          }
          y<<=1;
          i+=1;
          }
          cs=1;
          return(xxx);
          }

          串行數(shù)據(jù)傳輸模塊包括串行口初始化子程序和數(shù)據(jù)傳輸子程序,各子程序分別如下。其中數(shù)據(jù)傳輸采用查詢方式,也可以方便地改為中斷方式。

          void rs232init()
          {tmod=0x20;
          th1=0xfd;
          tr1=1;
          scon=0x50;
          }
          void receandtran()
          {unsigned char da;
          while(!ri)
          ri=0;
          da=sbuf;
          sbuf==da;
          while(!ti);
          ti=0;
          }
          上位機接收數(shù)據(jù)所用c語言程序包括初始化子程序和接收子程序。各子程序分別如下:
          void cominit(void)
          {
          outportb(0x3fb,0x80);
          outportb(0x3f8,0x18); /與單片機波特率一致為9600bps*/
          outportb(0x3f9,0x00);
          outportb(0x3fb,0x03); /8位數(shù)據(jù)位,1位停止位,無奇偶校驗*/
          outportb(0x3fc,0x03); /*modem控制寄存器設(shè)置,使dtr和rts輸出有效*/
          outportb(0x3f9,0x00); /*設(shè)置中斷允許寄存器,禁止一切中斷*/
          }
          void data_rece(void) /*查詢方式接收數(shù)據(jù)子程序*/
          {
          while(!kbhit())
          {
          while(!(inportb(0x3fd)&0x01));/*若接收寄存器為空,則等待*/
          printf("%x ",inportb(0x3f8)); /*讀取結(jié)果并顯示*/
          }
          getch();
          }


          智能化串行采集/傳輸模塊在pcr儀中的應(yīng)用

          在pcr儀的電路設(shè)計中,因需要檢測的信號很多,包括熱蓋的溫度檢測,散熱器的溫度檢測,腔體內(nèi)部的溫度檢測,氣流的溫度檢測,光信號的檢測等等,為了簡化電路,節(jié)約成本,減小體積,在選擇a/d轉(zhuǎn)換電路時選用了spi總線的tlc2543,該芯片有多達(dá)11路的模擬信號輸入端,完全滿足pcr儀電路設(shè)計的需要,一個芯片既能完成檢測多個信號的功能,又能節(jié)約單片機的資源,圖6是其硬件原理圖。

          結(jié)論

          本文所述的智能化串行數(shù)據(jù)模塊,可直接用于任何微機控制和檢測系統(tǒng)中以取代原來的模數(shù)轉(zhuǎn)換設(shè)計。經(jīng)過實踐檢驗,該模塊功耗低、采樣精度高、可靠性好、接口簡便,有很高的實用價值。該智能模塊的軟件和硬件成功應(yīng)用于生命科學(xué)儀器“熱循環(huán)儀”的設(shè)計和實踐中,使用方便,簡單可行,節(jié)約成本,能夠滿足大多數(shù)數(shù)據(jù)采樣的應(yīng)用場合。



          關(guān)鍵詞: 模塊

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();