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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 基于ATmega128的無(wú)線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          基于ATmega128的無(wú)線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-01-02 來(lái)源:網(wǎng)絡(luò) 收藏

          電力日益市場(chǎng)化的環(huán)境下,電力公司必須提高服務(wù)質(zhì)量以保持競(jìng)爭(zhēng)力。當(dāng)前我國(guó)的一些地區(qū),配網(wǎng)自動(dòng)化程度低,人員工作效率低。根據(jù)這種需求,數(shù)傳.整個(gè)數(shù)據(jù)通信RS-485串口通信的一點(diǎn)對(duì)多點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu)。數(shù)傳電臺(tái)每站點(diǎn)設(shè)一部,分別連接主站的工作站和分站的RTU/FTU等,進(jìn)行輪詢通信。各分站作業(yè)數(shù)據(jù)上報(bào)以及數(shù)采工作站的控制指令下行傳輸都通過(guò)方式完成。

          本文引用地址:http://www.ex-cimer.com/article/155377.htm

          1 思想

          單元采用先進(jìn)的嵌入式單片機(jī)作為核心部件,利用RS-485通信接口與控制通信。測(cè)量站主要是將捕捉的現(xiàn)場(chǎng)信號(hào)經(jīng)轉(zhuǎn)換器ADC采樣、量化、編碼后,變成數(shù)字信號(hào)傳給微處理器,接收遙控指令并發(fā)送數(shù)據(jù);主控站的主要工作是發(fā)送遙控指令、接收數(shù)據(jù)信息、進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)管理。整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,可靠性高。見(jiàn)圖1。
          1.1 高速的模數(shù)轉(zhuǎn)換芯片
          TLC5510
          該系統(tǒng)的A/D轉(zhuǎn)換采用
          TLC5510模數(shù)轉(zhuǎn)換芯片。TLC5510模數(shù)轉(zhuǎn)換芯片是TI公司的8位A/D轉(zhuǎn)換器,是一款高速、低功耗且內(nèi)部帶有采樣保持電路。它的時(shí)序是當(dāng)CLK為高電平時(shí)轉(zhuǎn)換數(shù)據(jù),當(dāng)CLK為低電平時(shí)輸出有效數(shù)據(jù)。當(dāng)要從A/D中讀取數(shù)據(jù)時(shí),只要 保持低電平即可,當(dāng) 為高電平時(shí)D1-D8為高阻態(tài).見(jiàn)圖2.
          1.2 數(shù)據(jù)采集系統(tǒng)的接口電路與流程
          FIFO芯片SN74ACT7808是2048字節(jié)×9位可以實(shí)現(xiàn)先進(jìn)先出異步讀寫(xiě)操作的雙端口存儲(chǔ)器.讀寫(xiě)操作會(huì)自動(dòng)訪問(wèn)存儲(chǔ)器中連續(xù)的存儲(chǔ)單元。從FIFO中讀出的數(shù)據(jù)順序與寫(xiě)入的順序相同,地址的順序在內(nèi)部已經(jīng)預(yù)先定義好了。對(duì)FIFO的讀寫(xiě)操作只由讀寫(xiě)信號(hào)控制,不需要另外的地址信息。這使得FIFO的控制電路變得十分簡(jiǎn)單:讀數(shù)據(jù)時(shí)只要OE保持為高電平同時(shí)使UNCK產(chǎn)生一個(gè)上升沿;寫(xiě)數(shù)據(jù)只要LDCK產(chǎn)生一個(gè)上升沿即可.
          由于是高速數(shù)據(jù)采集,單片機(jī)相對(duì)A/D來(lái)說(shuō)速度遠(yuǎn)遠(yuǎn)不夠,所以需要設(shè)計(jì)一個(gè)電路讓數(shù)據(jù)采集與存儲(chǔ)自動(dòng)完成,見(jiàn)圖2。單片機(jī)的PB0引腳通過(guò)與門(mén)與外部CLK時(shí)鐘相連,這樣單片機(jī)就可以控制A/D的采樣。當(dāng)PB0為高電平時(shí)進(jìn)行采樣,當(dāng)PB0引腳為低電平時(shí)A/D的CLK沒(méi)有脈沖,采樣停止。當(dāng)FIFO保存的數(shù)據(jù)幾乎滿后給單片機(jī)一個(gè)中斷信號(hào),單片機(jī)接到中斷信號(hào)后置PB0為低電平停止采樣,然后把數(shù)據(jù)從FIFO中讀出。因?yàn)閱纹瑱C(jī)的PG0引腳經(jīng)反向器后接到FIFO的UNCK,PC4腳接到FIFO的OE,它的有效地址只要保持PC4引腳為高電平即可。數(shù)據(jù)處理完畢后再接著采樣,如此反復(fù),完成周期性采樣[2]。


          2嵌入式單片機(jī)與數(shù)傳電臺(tái)的串行通信
          AVR RISC結(jié)構(gòu)的8位低功耗CMOS微處理器。ATmega128的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。8通道10位ADC(具有可選的可編程增益)、具有片內(nèi)振蕩器的可編程看門(mén)狗定時(shí)器、SPI串行端口、異步串行口與JTAG測(cè)試接口(此接口同時(shí)還可以用于片上調(diào)試),以及六種可以通過(guò)軟件選擇的省電模式。
          2.1 ATmega128的串行通信方式
          串行通信波特率:9600bps,發(fā)送接收方式:一位起始位,8位數(shù)據(jù)位,奇校驗(yàn),1位停止位。UARTO初始化可以在ICC AVR中設(shè)置完成,而且Builder自動(dòng)生成中斷服務(wù)子程序和人口地址,只需在服務(wù)子程序中加人處理代碼即可。
          //UARTO initialisation
          //desired baud rate:9600
          //char size:8bit
          //parity: Disabled
          void uart0_init(void)
          {
          UCSR0A=0x00;
          UCSR0B=0x98; //接收完成中斷允許,發(fā)送數(shù)據(jù)允許.
          UCSR0C=0x06; //發(fā)送接收的字符長(zhǎng)度為8位.
          UBRR0H=0x00;
          }
          接收數(shù)據(jù)時(shí),單片機(jī)設(shè)置一個(gè)標(biāo)志,假設(shè)接收到第一個(gè)“*”字符,標(biāo)志置1,認(rèn)為通信正常,可以接收數(shù)據(jù)。接收數(shù)據(jù)時(shí),判斷是否收到接收完成消息;是,則清除標(biāo)志,使得下次收到的數(shù)據(jù)無(wú)效,直到再次收到“*”,標(biāo)志置1。標(biāo)志為1時(shí),判斷是否收到消息(字符值等于8);是,將上次收到字符清為0;不是則將接收到的數(shù)據(jù)保存到接收緩沖區(qū)中。執(zhí)行操作后,最后將接收到的字符發(fā)回給計(jì)算機(jī)。單片機(jī)通信流程圖見(jiàn)圖3。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(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); })();