国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM的上片機(jī)與上位機(jī)通訊的實(shí)現(xiàn)

2018-11-05 07:48周亮馮晟曾赤良
電子技術(shù)與軟件工程 2018年18期

周亮 馮晟 曾赤良

摘要: 隨著經(jīng)濟(jì)的發(fā)展和科技的提高,ARM的應(yīng)用越來(lái)越廣泛。我公司研制的顯微鏡載玻片自動(dòng)上片機(jī)就運(yùn)用了自行開(kāi)發(fā)的以ARM作為主控芯片的控制器,它是我公司研制的一種用于醫(yī)學(xué)檢測(cè)上的設(shè)備,它的應(yīng)用實(shí)現(xiàn)了分析儀上片操作自動(dòng)化,大大節(jié)省時(shí)間,提高工作效率。本文著重介紹了基于ARM的上片機(jī)與上位機(jī)之間的串口通訊,通過(guò)串口通訊的實(shí)現(xiàn),使得自動(dòng)上片機(jī)能更好地、更有效地完成所需功能。

【關(guān)鍵詞】自動(dòng)上片機(jī) ARM 通訊協(xié)議 串口通訊

1 引言

隨著現(xiàn)代化水平的不斷發(fā)展進(jìn)步,越來(lái)越多的設(shè)備向著高性能、高效率、高自動(dòng)化和高可靠性的方向發(fā)展,其中在醫(yī)學(xué)上也更多的用到了這類(lèi)微型化、智能化的現(xiàn)代化設(shè)備,它給醫(yī)學(xué)研究與發(fā)展提供了更高效、更可靠的保障。

現(xiàn)在越來(lái)越多的醫(yī)療機(jī)構(gòu)需要這類(lèi)智能化設(shè)備。本文介紹一下這類(lèi)設(shè)備中的一種,即顯微鏡載玻片自動(dòng)上片機(jī)。它是我院研制的一種用于醫(yī)學(xué)檢測(cè)上的設(shè)備,其主要功能是能夠由機(jī)械手將載有細(xì)胞樣本的玻片從玻片庫(kù)內(nèi)取出,放置在顯微鏡的載物臺(tái)上進(jìn)行檢測(cè),分析儀檢測(cè)完畢后自動(dòng)上片機(jī)接受到分析儀的指令后,自動(dòng)地將玻片放回到玻片庫(kù)內(nèi)。真正實(shí)現(xiàn)分析儀上片操作自動(dòng)化,這樣能大大節(jié)省時(shí)間,提高工作效率。

自動(dòng)上片機(jī)由玻片庫(kù)、玻片抓取裝置、玻片移動(dòng)裝置、條碼識(shí)別裝置、電控系統(tǒng)等部分組成。玻片庫(kù)一次可容納50片,由以步進(jìn)電機(jī)為驅(qū)動(dòng)源的機(jī)構(gòu)驅(qū)動(dòng)上下運(yùn)動(dòng)。玻片抓取裝置通過(guò)電動(dòng)夾緊方式和定制夾具來(lái)抓取玻片;玻片移動(dòng)裝置實(shí)現(xiàn)XY坐標(biāo)上的二維運(yùn)動(dòng),實(shí)現(xiàn)玻片在玻片庫(kù)和平臺(tái)之間來(lái)回轉(zhuǎn)運(yùn);條碼識(shí)別裝置安裝有條碼識(shí)別器,通過(guò)自動(dòng)識(shí)別條形碼的方式來(lái)分辨出不同病人的玻片。

本文首先簡(jiǎn)單介紹了自動(dòng)上片機(jī)。它的電控部分采用了自行開(kāi)發(fā)的定制控制器,該控制器運(yùn)行穩(wěn)定可靠,能應(yīng)用于各種工業(yè)控制場(chǎng)合。然后介紹了專(zhuān)門(mén)為自動(dòng)上片機(jī)與PC機(jī)之間制定的通訊協(xié)議,具有傳輸時(shí)間短,受干擾概率低,通信實(shí)時(shí)性好等優(yōu)點(diǎn)。通過(guò)對(duì)ARM微控制器模塊的選擇、通訊協(xié)議的制定以及相關(guān)程序的編寫(xiě),使我們能更好地實(shí)現(xiàn)自動(dòng)上片機(jī)與上位機(jī)之間的串口通訊,更好地實(shí)現(xiàn)設(shè)備的功能。

2 ARM微控制器模塊的選擇

自動(dòng)上片機(jī)的控制系統(tǒng)運(yùn)用ARM芯片作為主控芯片?,F(xiàn)有的控制系統(tǒng)一般采用單片機(jī)或DSP作為主控芯片,而ARM芯片以其高效的處理性能和豐富的處理器資源,較單片機(jī)和DSP更能滿(mǎn)足醫(yī)療設(shè)備的控制系統(tǒng)要求,并且ARM芯片已經(jīng)被越來(lái)越廣泛地應(yīng)用于工業(yè)控制和移動(dòng)計(jì)算領(lǐng)域,其應(yīng)用已趨于成熟。

自動(dòng)上片機(jī)的電控系統(tǒng)采用了自行開(kāi)發(fā)的控制器,該控制器是基于TI公司的EASYARM1138微控制器的基礎(chǔ)上開(kāi)發(fā)出來(lái)的。它選用TI公司的ARM CortexTM-M3處理器,該處理器提供出色的計(jì)算性能和對(duì)事件的卓越系統(tǒng)響應(yīng),同時(shí)可以應(yīng)對(duì)低動(dòng)態(tài)和靜態(tài)功率限制的挑戰(zhàn)。定位精度能達(dá)到30μ??刂破魈峁┝烁咝阅艿?2位運(yùn)算能力,包含了PWM輸出,此特點(diǎn)特別適合控制步進(jìn)電機(jī)等驅(qū)動(dòng)器件,內(nèi)置的ADC和DAC避免外接單獨(dú)的轉(zhuǎn)換芯片的麻煩。I2C、SPI、UART、USB等豐富的外設(shè)端口,使得控制器能應(yīng)用于各種工業(yè)控制場(chǎng)合。軟件方面,直接采用“C語(yǔ)言+驅(qū)動(dòng)庫(kù)”的新概念開(kāi)發(fā)模式。圖1為控制器的功能示意圖。

3 上片機(jī)與上位機(jī)之間的通訊協(xié)議

上片機(jī)與上位機(jī)之間的通信(即控制器與上位機(jī)之間的通信)用的是串行通信,采用RS232標(biāo)準(zhǔn)。“串行”是指外設(shè)與接口電路之間的信息傳送方式,CPU與接口之間卻是按照并行方式工作的。串行通信包括四個(gè)重要參數(shù):波特率、奇偶校驗(yàn)位、數(shù)據(jù)位和停止位,我方設(shè)計(jì)的通訊協(xié)議用到的參數(shù)具體為波特率9600bps,無(wú)校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停止位。

我們?yōu)榱藵M(mǎn)足客戶(hù)要求自定義了6條通信指令。簡(jiǎn)單介紹如下:

(1)抓撥片傳參數(shù)狀態(tài)。其功能碼為21H。

詢(xún)問(wèn)幀:

詢(xún)問(wèn)幀由10個(gè)字節(jié)組成,其格式如表1。

應(yīng)答幀:

應(yīng)答幀由9個(gè)字節(jié)組成,其格式如表2,(狀態(tài)碼為OOH/OIH)。

(2)通知上位機(jī)玻片條碼。其功能碼為22H。

發(fā)送幀如表3。

(3)上位機(jī)傳遞完成信號(hào)狀態(tài)(檢測(cè)結(jié)束指令)。其功能碼為30H,命令碼為OOH。

(4)上位機(jī)發(fā)送機(jī)器回零指令。其功能碼為30H,命令碼為OIH。

(5)復(fù)位完成指令。其功能碼為30H,命令碼為02H。

(6)所有玻片已經(jīng)抓完指令。其功能碼為30H,命令碼為03H。

(3)~(6)4條通信指令其格式均為:

詢(xún)問(wèn)幀:

詢(xún)問(wèn)幀由6個(gè)字節(jié)組成,其格式如表4。

應(yīng)答幀:

應(yīng)答幀由6個(gè)字節(jié)組成,其格式如表5。

4 上片機(jī)部分串口通訊的實(shí)現(xiàn)

上片機(jī)部分實(shí)際上主要是其控制器部分,它直接采用了“C語(yǔ)言+驅(qū)動(dòng)庫(kù)”的新概念開(kāi)發(fā)模式。由于Luninary Micro官方免費(fèi)提供驅(qū)動(dòng)庫(kù)軟件包,這樣我們就能更方便的實(shí)現(xiàn)其串口通訊。這里,我方要用到UART,UART是一種通用串行數(shù)據(jù)總線(xiàn),用于異步通信,該總線(xiàn)雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。其初始化如下:

SysCtlPeriEnable(SYSCTL_PERIPHUART2);

//使能UART模塊

SysCtlPeriEnable(SYSCTL_PERIPHGPIOG);

//使能RX/TX所在的GPIO端口

GPIOPinTypeUART(GPIO_PORTGBASE,

//配置RX/TX所在管腳為

GPIO_ PIN O GPIO PIN_ 1);//UART收發(fā)功能

UARTConfigSet(UART2_BASE,//配置UART端口

9600.波特率:9600

UART CONFIG WLEN 8//數(shù)據(jù)位:8

UART__ CONFIG STOP_ ONE//停止位:1

UART_CONFIG_PAR_NONE);//校驗(yàn)位:無(wú)

UARTEnable(UART2_BASE);//使能UART端口

我們編寫(xiě)函數(shù),通過(guò)功能封裝為函數(shù)的方式來(lái)實(shí)現(xiàn)自定義的6條通信指令,從而實(shí)現(xiàn)上片機(jī)部分的串口通訊。

fSend_2 l_GrabSlide_TransParameter()用于發(fā)送抓玻片傳參數(shù)狀態(tài);fSend_22_Send_SlideBarcode()用于實(shí)現(xiàn)通知上位機(jī)玻片條碼的功能;fSend_30_OO_PosirionMachineTransFinish()用于發(fā)送檢測(cè)結(jié)束指令;fSend_ 30 01 Retum to_ zero()用于發(fā)送上位機(jī)發(fā)送機(jī)器回零指令;fSend_30_02ResetCompletion()用于發(fā)送復(fù)位完成指令;fSend_30_03_AlICompletion()用于發(fā)送所有玻片發(fā)送完畢指令。

通過(guò)對(duì)上位機(jī)發(fā)送的通信指令進(jìn)行解碼,并返回相應(yīng)的應(yīng)答幀,就可以實(shí)現(xiàn)上片機(jī)與上位機(jī)的實(shí)時(shí)通訊,使自動(dòng)上片機(jī)完成相對(duì)應(yīng)的功能。

5 上位機(jī)部分串口通訊的實(shí)現(xiàn)

上位機(jī)部分采用Visual C++6.0作為開(kāi)發(fā)平臺(tái),具體串口通訊功能選擇應(yīng)用MSComm控件來(lái)編寫(xiě)實(shí)現(xiàn)。

將此控件拉至對(duì)話(huà)框中,在類(lèi)視圖中添加CMSComm類(lèi)。MSComm6.0控件只有一個(gè)事件,即Oncomm事件。在通信時(shí)如果發(fā)生錯(cuò)誤或者事件,將會(huì)引發(fā)Oncomm事件并且改變其屬性值,通過(guò)GetConunEvent()可獲得Oncomm產(chǎn)生事件或錯(cuò)誤的代碼。在與上片機(jī)控制器進(jìn)行通信的過(guò)程中,使用MSC,omm6.0控件和自定義的通訊協(xié)議可以完成數(shù)據(jù)的發(fā)送與接收。

端口的主要設(shè)置如下:

if(m_Comm.GetPortOpen(》

m_Comm.SetPortOpen(FALSE);

m_Comm.SetCommPort(l);//設(shè)置串口

if(Im_Comm.GetPortOpen(》//打開(kāi)串口

m_Comm.SetPortOpen(TRUE);

else

{

AfxMessageBox(”cannot open serialport”);

return false;

}

m_Comm.SetSettings(”9600,n,8,1”);

m_Comm.SetInputMode(l);

m_Comm.SetRThreshold(l);

m_Comm.SetInputLen(0);

m_Comm.Getlnput();

我們通過(guò)在上位機(jī)界面上設(shè)置起始地址和抓取數(shù)量,來(lái)發(fā)送和接收數(shù)據(jù),從而達(dá)到上位機(jī)串口通訊的目的。的圖2、圖3為起始地址為10,抓取數(shù)量為5,所得到的抓取命令、檢測(cè)結(jié)束命令的上位機(jī)界面。

通過(guò)上位機(jī)發(fā)送相應(yīng)的指令進(jìn)行與上片機(jī)控制器的通訊,使我們能夠?qū)崿F(xiàn)抓取、檢測(cè)等一系列設(shè)備工藝設(shè)定,并能更好的完成自動(dòng)上片機(jī)的所需功能。

6 結(jié)束語(yǔ)

近年來(lái),隨著自動(dòng)化及信息技術(shù)的迅速發(fā)展,各種設(shè)備己逐步向高質(zhì)量、多功能、集成化、自動(dòng)化、系統(tǒng)化、智能化的方向發(fā)展,ARM也被越來(lái)越多的運(yùn)用其中。通過(guò)基于ARM的上片機(jī)與上位機(jī)串口通訊的實(shí)現(xiàn),使得自動(dòng)上片機(jī)能更好地、更有效地完成所需功能。目前,我院研制的自動(dòng)上片機(jī)已經(jīng)在某醫(yī)療公司投入運(yùn)用,并且運(yùn)行情況良好,為他們大大節(jié)省時(shí)間,提高工作效率。

參考文獻(xiàn)

[1]周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北 京:北京航天航空大學(xué)出版社,2005.

[2] LM3S1138微控制器數(shù)據(jù)手冊(cè)[z].廣州周立功單片機(jī)發(fā)展有限公司,2008: 20-24.

[3]何欽銘.C語(yǔ)言程序設(shè)計(jì)[M].北京:科學(xué)出版社,2010.

[4]李現(xiàn)勇,精通Visual C++串口通信技術(shù)與工程實(shí)踐(第三版)[M].北京:人民郵電出版社,2008.

[5]張?bào)蘩?,劉?shū)智.Visual C++實(shí)踐與提高(串口通信與工程應(yīng)用篇)(第二版)[M].北京:中國(guó)鐵道出版社,2009.