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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 市場分析 > 基于MXT8051通用配料控制器的設計

          基于MXT8051通用配料控制器的設計

          —— A General Mixer Controller Based on MXT8051
          作者:路東昕 上海交大自動化工程研究中心 時間:2010-06-29 來源:電子產(chǎn)品世界 收藏

            引言

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

            混凝土是建筑行業(yè)最重要的材料,在混凝土的生產(chǎn)原料中,除水泥、沙石外最重要的原料當屬減水劑,減水劑是一種表面活性材料,加入后對水泥顆粒起擴散作用,把水泥膠體中包含的游離水釋放出來,雖然其在混凝土中比例微小,但作用巨大,可減少拌合用水,改善和易性,節(jié)約水泥,提高強度。

            減水劑復配裝置主要解決的是減水劑的生產(chǎn)、稀釋、分裝等生產(chǎn)過程,目前多數(shù)減水劑復配裝置控制系統(tǒng)的解決方案是“重儀表+PLC+HMI”或“稱重儀表+工控機+IO板”的方案,在實施過程中發(fā)現(xiàn),這些方案成本高,穩(wěn)定性可靠性差,不適用于一些成本敏感的項目。

            根據(jù)上述需求,本文以科技的芯片為核心設計并測試了通用配料控制器,其集成了稱重儀表、PLC、LCD顯示等功能,很好的滿足了減水劑復配控制的需求,如需應用到其他行業(yè),只需將軟件稍加修改即可。

            總體方案設計

            本文采用芯片驅(qū)動稱重芯片,讀取數(shù)值,根據(jù)預先設定的配方數(shù)據(jù)進行自動產(chǎn)品復配操作,包括自動加水、自動添加配料(固態(tài)或液態(tài))、自動攪拌、自動出料等操作。

            系統(tǒng)使用16位7段液晶顯示器顯示重量信息、設定信息、狀態(tài)信息等,通過5個按鍵進行參數(shù)設定、系統(tǒng)標定、運行控制、顯示控制等操作。

            配方可由RS232或RS485連接到上位機進行,上位機軟件可讀取、裝載配方數(shù)據(jù),也可實時讀取稱重數(shù)據(jù)。

            上位機軟件采用VB.NET 2005開發(fā),可設置串行通信參數(shù)、測試控制器IO、讀取稱重數(shù)值、管理配方數(shù)據(jù)等。

            硬件設計

            芯片

            MXT8051是以高速單指令周期 8051 為核的 MCU。擁有豐富的外設,包括 PWM、UART、WDT、Timer 等,1KB大容量外部RAM,內(nèi)嵌 32Kx8 可在線編程 FLASH,10 位 ADC,8位DAC,若干OP,36x4 LCD driver、POR以及可編程增益放大器(PGA)等模擬電路。電路集成片上調(diào)試系統(tǒng),通過標準 JTAG接口,快速診斷復雜 SoC,該調(diào)試系統(tǒng)具有不占用任何硬件資源,支持全速運行、單步運行、硬件斷點、軟件斷點以及觀察內(nèi)部特殊功能寄存器、程序指針和內(nèi)部RAM 等功能。上位機通過標準 JTAG 接口以及用戶定義指令執(zhí)行在線編程和在線調(diào)試。

            稱重專用芯片

            是一款專為高精度電子秤設計的24位AD轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。

            硬件電路設計

            圖2 所示為系統(tǒng)硬件電路設計框圖,系統(tǒng)設計成兩塊電路板,IO板和MCU板。MCU板上集成有稱重專用24位Σ-ΔDA轉(zhuǎn)換芯片,RS232或RS485通信,16位7段LCD顯示,IO板上集成有7路繼電器IO輸出,5路光電隔離IO輸入,一路模擬量輸出,2路模擬量輸入,1路PWM光電隔離輸出,5鍵鍵盤輸入。

            HX711外圍電路以及電壓基準電路設計,采用TL431芯片,通過電阻設定成5V輸出,同時作為傳感器電橋激勵和HX711的參考電壓,這樣可以有效抵消溫漂造成的系統(tǒng)誤差(如圖3所示)。

            軟件設計

            控制器軟件設計

            HX711芯片的串口通訊線由管腳 PD_SCK 和 DOUT 組成,用來輸出數(shù)據(jù),選擇輸入通道和增益。 當數(shù)據(jù)輸出管腳 DOUT 為高電平時,表明AD 轉(zhuǎn)換器還未準備好輸出數(shù)據(jù),此時串口時鐘輸入信號 PD_SCK 應為低電平。當 DOUT 從高電平變低電平后,PD_SCK 應輸入25至27個不等的時鐘脈沖(如圖4)。其中第一個時鐘脈沖的上升沿將讀出輸出 24 位數(shù)據(jù)的最高位(MSB),直至第 24 個時鐘脈沖完成,24位輸出數(shù)據(jù)從最高位至最低位逐位輸出完成。第25至27個時鐘脈沖用來選擇下一次AD轉(zhuǎn)換的輸入通道和增益,見表1。

            PD_SCK 的輸入時鐘脈沖數(shù)不應少于25和多于27,否則會造成串口通訊錯誤。 當 AD 轉(zhuǎn)換器的輸入通道或增益改變時,AD轉(zhuǎn)換器需要4個數(shù)據(jù)輸出周期才能穩(wěn)定。DOUT 在4 個數(shù)據(jù)輸出周期后才會從高電平變低電平,輸出有效數(shù)據(jù)。

          根據(jù)圖4所示的時序邏輯,讀取通道A,增益128倍,其讀取函數(shù)如下:
          unsigned int ReadCount()
          {
           unsigned int ADval;
           unsigned long Count;
           unsigned char i;
           PCR0 = 0xFB;  //避免與I2C總線沖突
                
           ADSK = 0;
           Count = 0;
           while(ADDO);
           
           for (i=0;i<24;i++)
           {
            ADSK = 1;
            Count = Count<<1;
            ADSK = 0;
            if(ADDO) Count++;
           }
           ADSK = 1;
           ; 
           ADSK = 0;
              //判斷是否為負值,并顯示符號
           if((Count & 0x800000) == 0x800000)
           {
            Count = ~(Count - 1);
            LCDDATA16 |= 0x80;
           }
           else
           {
            LCDDATA16 = 0x00;
           }
           ADval = (int)(Count >> 8);//取高十六位有效值
           B_AdFinish = 1;
           return(ADval);
          }

            主程序流程如圖5所示。

            程序主要由初始化代碼和主循環(huán)代碼構(gòu)成。

            上位機軟件設計

            上位機軟件采用VB.NET 2005開發(fā),主要功能為串行通信參數(shù)設置、IO測試、稱重數(shù)值讀取、配方數(shù)據(jù)管理。

            軟件運行界面如圖6所示。

            該軟件的固件技術(shù)為串行指令的接收和發(fā)送,指令包括IO設定指令、IO狀態(tài)讀取指令、稱重數(shù)值讀取指令、配方數(shù)據(jù)寫指令、配方數(shù)據(jù)讀指令,其代碼實現(xiàn)如下:

          '0.5秒定時發(fā)送 讀重量指令
          Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
          command(0) = &H5A

          If SerialPort1.IsOpen Then
          SerialPort1.Write(command, 0, 1)
              End If
          End Sub
             十六進制數(shù)5A 表示讀取控制器的稱重數(shù)值;
          'IO輸出 指令
          Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
              If CheckBox1.Checked Then
                  command(0) = &HF9
           Else
            command(0) = &HF1
           End If
              If SerialPort1.IsOpen Then
                  SerialPort1.Write(command, 0, 1)
              End If
          End Sub
          十六進制數(shù)F?表示該指令為IO輸出指令,其中第3位數(shù)據(jù)表示開關(guān)狀態(tài),1表示閉合,0表示斷開,0,1,2位合起來表示IO通道號;
          '讀取輸入信息
          Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
           command(0) = &HF0
           If SerialPort1.IsOpen Then
            SerialPort1.Write(command, 0, 1)
           End If
          End Sub
           十六進制數(shù)F0表示該指令為IO狀態(tài)讀取指令,當單片機接到此指令時,立即發(fā)送重量信息給上位機,格式如下:“I_?”,其中 ?即各個IO的狀態(tài),用1表示接通,0表示關(guān)斷。

            結(jié)語

            目前,我國半導體產(chǎn)業(yè)落后于西方巨頭,作為國產(chǎn)半導體產(chǎn)業(yè)的領(lǐng)軍企業(yè),擁有雄厚的基礎(chǔ),本文以時代民芯科技的MXT8051單片機為核心,研發(fā)通用配料控制器,因為該芯片擁有豐富的片內(nèi)資源,可以簡化設計,同時,選用國產(chǎn)芯片,也是為民族半導體產(chǎn)業(yè)振興添磚加瓦。

            本文的通用配料控制器,除了可以提高減水劑復配效率,改善產(chǎn)品質(zhì)量外,還可應用于其他相關(guān)的物料復配行業(yè)。此外,由于設計和測試時間有限,該控制器設計中還存在很多遺憾,有很大改進空間,比如:可以應用片內(nèi)運放調(diào)節(jié)零點,提高稱重精度;也可以將開關(guān)電源集成入控制器,這樣可進一步降低用戶成本,并節(jié)省空間。

            參考文獻:

            【1】MXT8051芯片數(shù)據(jù)手冊,時代民芯科技,2009年

            【2】HX711中文 數(shù)據(jù)手冊,芯海科技,2006年

            【3】51單片機C語言應用開發(fā)技術(shù)大全,人民郵電出版社,劉坤等,2008 年

            【4】Visual Basic 2005高級編程,(美)Bill Evjen, Billy Hollis, Rockford Lhotka 等 ,2006 年

          51單片機相關(guān)文章:51單片機教程


          c語言相關(guān)文章:c語言教程


          稱重傳感器相關(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); })();