新聞中心

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

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

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

          引言

        本文引用地址:http://www.104case.com/article/110392.htm

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

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

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

          總體方案設計

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

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

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

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

          硬件設計

          芯片

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

          稱重專用芯片

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

          硬件電路設計

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

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

          軟件設計

          控制器軟件設計

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

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

        根據圖4所示的時序邏輯,讀取通道A,增益128倍,其讀取函數如下:
        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所示。

          程序主要由初始化代碼和主循環代碼構成。

          上位機軟件設計

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

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

          該軟件的固件技術為串行指令的接收和發送,指令包括IO設定指令、IO狀態讀取指令、稱重數值讀取指令、配方數據寫指令、配方數據讀指令,其代碼實現如下:

        '0.5秒定時發送 讀重量指令
        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
           十六進制數5A 表示讀取控制器的稱重數值;
        '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
        十六進制數F?表示該指令為IO輸出指令,其中第3位數據表示開關狀態,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
         十六進制數F0表示該指令為IO狀態讀取指令,當單片機接到此指令時,立即發送重量信息給上位機,格式如下:“I_?”,其中 ?即各個IO的狀態,用1表示接通,0表示關斷。

          結語

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

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

          參考文獻:

          【1】MXT8051芯片數據手冊,時代民芯科技,2009年

          【2】HX711中文 數據手冊,芯海科技,2006年

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

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

        51單片機相關文章:51單片機教程


        c語言相關文章:c語言教程


        稱重傳感器相關文章:稱重傳感器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沧源| 英吉沙县| 甘泉县| 巢湖市| 柏乡县| 攀枝花市| 唐山市| 九龙坡区| 瑞安市| 大冶市| 新津县| 安塞县| 阜平县| 和龙市| 菏泽市| 莆田市| 民县| 安吉县| 龙江县| 新民市| 镇宁| 富源县| 渝北区| 河南省| 湘西| 湘阴县| 阳曲县| 西充县| 玉田县| 武汉市| 东乡| 政和县| 青铜峡市| 延长县| 合肥市| 英德市| 仁怀市| 察隅县| 昔阳县| 剑阁县| 罗平县|