張 娜
(遼寧機(jī)電職業(yè)技術(shù)學(xué)院 華孚儀表學(xué)院, 遼寧 丹東 118009)
隨著現(xiàn)代數(shù)字技術(shù)的發(fā)展與硬件開(kāi)發(fā)水平的提高,工業(yè)現(xiàn)場(chǎng)對(duì)加工儀器提出更高要求。傳統(tǒng)的51系列單片機(jī)因其片內(nèi)資源相對(duì)較少,需要較多的擴(kuò)展器件,大數(shù)據(jù)量的運(yùn)算周期較長(zhǎng),實(shí)時(shí)性欠佳等不利因素正在逐步退出業(yè)界視野。時(shí)下,工業(yè)產(chǎn)品為了盡快占領(lǐng)市場(chǎng),常常把產(chǎn)品的研發(fā)時(shí)間壓縮至很短。為了提升產(chǎn)品研發(fā)效率,本文就對(duì)此設(shè)計(jì)提出了一個(gè)基于增強(qiáng)型單片機(jī)和Modbus協(xié)議的嵌入式工業(yè)控制開(kāi)發(fā)平臺(tái)。平臺(tái)選擇C8051F021微處理器,加入了IC公司生產(chǎn)的大量片內(nèi)外設(shè),使處理器擁有堪稱(chēng)優(yōu)良的應(yīng)用性能。使用此平臺(tái)開(kāi)發(fā)的主機(jī)具有穩(wěn)定、可靠的實(shí)時(shí)性,可作為工業(yè)儀器核心直接投付應(yīng)用,能夠?qū)崿F(xiàn)集中控制,不僅呈現(xiàn)出較高靈活性,而且還兼具維護(hù)和升級(jí)成本低,易于擴(kuò)展等優(yōu)點(diǎn)。針對(duì)這一狀況,本文將展開(kāi)如下研究論述。
嵌入式芯片的智能儀器開(kāi)發(fā)平臺(tái)的硬件結(jié)構(gòu)主要包括如下部分:C8051F021 微控制器、A/D轉(zhuǎn)換模塊、D/A轉(zhuǎn)換模塊、內(nèi)存、鍵盤(pán)、顯示電路及上位機(jī)通訊模塊。組成原理圖由圖1所示。
C8051F021是一種混合信號(hào)系統(tǒng)芯片,是高度集成的片上系統(tǒng)。指令結(jié)構(gòu)的70% 的指令執(zhí)行時(shí)間為1~2個(gè)系統(tǒng)時(shí)鐘周期;系統(tǒng)頻率為25 MHz時(shí),速度可達(dá)到25 MIPS。其中嵌入了一款高速、低功耗、高性能的8位微處理器。該芯片尤需一提的突出特點(diǎn)就是高速指令處理能力[1]。32個(gè)I/O口線(xiàn)均容許5 V電壓。 C8051F021內(nèi)部本身自帶A/D轉(zhuǎn)換與D/A轉(zhuǎn)換,真正12位、100 KSPS的8通道ADC。同時(shí),設(shè)計(jì)上還嵌有串行口,為系統(tǒng)開(kāi)發(fā)省去了外圍電路、減小了體積??赏瑫r(shí)使用的硬件包括 SMBusTM、I2CTM、兼容SPITM及2個(gè)UART串口,并且能夠靈便地實(shí)現(xiàn)與上位機(jī)的通訊。
Modbus 協(xié)議作為工業(yè)控制器網(wǎng)絡(luò)協(xié)議的一種,業(yè)已成為通用工業(yè)標(biāo)準(zhǔn)之一,主要用于集中監(jiān)控不同廠(chǎng)商生產(chǎn)的控制設(shè)備之間連成的工業(yè)網(wǎng)絡(luò)的內(nèi)部相互通訊。
Modbus 通信協(xié)議是一種串行的主從通信協(xié)議,網(wǎng)絡(luò)中僅有一臺(tái)設(shè)備可作為主機(jī)(稱(chēng) Master),其它設(shè)備作為從機(jī)(稱(chēng)Slaver),主機(jī)沒(méi)有編號(hào),從機(jī)必須編號(hào)[2]。Modbus硬件連接結(jié)構(gòu)如圖2所示。在Modbus 通訊網(wǎng)絡(luò)上, 此協(xié)議要求通訊時(shí)必須知道每個(gè)通訊模塊的設(shè)備地址, 每個(gè)通訊模塊辨識(shí)甄別按地址發(fā)來(lái)的消息, 根據(jù)功能碼來(lái)判定要產(chǎn)生何種動(dòng)作。 如果需要回應(yīng), 控制器將生成相應(yīng)的反饋信息并利用Modbus 協(xié)議將其發(fā)出[3]。
圖1 硬件電路原理框圖 圖2 Modbus硬件連接
系統(tǒng)主要功能可描述為:AD輸入/輸出、DA輸入/輸出、液晶顯示、通訊接口、上位機(jī)傳輸指令,下位機(jī)執(zhí)行既定動(dòng)作等。在此基礎(chǔ)上,研發(fā)可得軟件系統(tǒng)的設(shè)計(jì)功能將包括如下內(nèi)容,即:初始化程序、A/D 采集程序、按鍵處理程序、顯示程序、數(shù)據(jù)處理程序、與上位機(jī)通訊程序、T0中斷子程序及串口 0 中斷子程序。綜上分析后則可推出,系統(tǒng)軟件的設(shè)計(jì)流程如圖 3 所示。
圖3 系統(tǒng)軟件流程
流水燈模塊是該系統(tǒng)平臺(tái)的重點(diǎn)研發(fā)功能之一。在該模塊設(shè)計(jì)中,點(diǎn)亮與單片機(jī)P1.0相連的發(fā)光二極管,延時(shí)約0.2 s,然后熄滅,延時(shí)約0.2 s后再度點(diǎn)亮,如此循環(huán)下去。通過(guò)本小節(jié)論述,可以初步了解到單片機(jī)I/O口輸出高/低電平的方法、以及延時(shí)函數(shù)的時(shí)間估算。該模塊的電路設(shè)計(jì)如圖4所示。同時(shí),進(jìn)一步研發(fā)給出該模塊的參考設(shè)計(jì)代碼可見(jiàn)如下。
圖4 閃爍LED電路圖
#include
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;//延時(shí)
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=0;i<120;i++);
} }
//主程序
void main()
{
while(1)
{
LED=~LED;
DelayMS(150);
}
}
研究中,串口通訊系統(tǒng)則是與PC機(jī)交互的重要部分[4]。在時(shí)下研究中,RS232 串行接口在目前PC機(jī)與通信工業(yè)中獲得了最廣泛的應(yīng)用,而且已將其定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)。RS232串行接口總線(xiàn)適用于:設(shè)備之間的通訊不大于15 m,傳輸速率最大為20 Kbps。本次研發(fā)中的設(shè)計(jì)電路可如圖5所示。
圖5 串口通訊電路
采用VB軟件編寫(xiě)上位機(jī)程序?qū)崿F(xiàn)上位機(jī)與下位機(jī)的通訊,界面設(shè)計(jì)效果即如圖6所示。
圖6 VB仿真軟件
上位機(jī)傳輸指令,使下位機(jī)做出既定動(dòng)作,調(diào)試結(jié)果如圖7、圖8所示。具體來(lái)說(shuō),設(shè)計(jì)調(diào)試了其中的數(shù)碼管顯示實(shí)驗(yàn)和LED發(fā)光二極管實(shí)驗(yàn)2個(gè)單元,串口選擇COM4。
圖7 數(shù)碼管顯示實(shí)驗(yàn)
圖8 LED發(fā)光二極管實(shí)驗(yàn)
本系統(tǒng)可實(shí)現(xiàn)AD輸入/輸出,DA輸入/輸出、鍵盤(pán)、液晶顯示、通訊接口、上位機(jī)傳輸指令,使下位機(jī)執(zhí)行既定動(dòng)作等功能,可以作為實(shí)訓(xùn)教學(xué)的設(shè)備,減少學(xué)校設(shè)備支出,為學(xué)生提供與當(dāng)前主流工業(yè)開(kāi)發(fā)實(shí)踐相似的學(xué)習(xí)機(jī)會(huì)。