潘浩
摘? 要: 傳統(tǒng)異步串行通信接口轉(zhuǎn)換系統(tǒng)轉(zhuǎn)換過(guò)程中,CPU利用率差,轉(zhuǎn)換的數(shù)據(jù)可靠性不高。為了解決上述問(wèn)題,基于現(xiàn)場(chǎng)總線設(shè)計(jì)了一種新的異步串行通信接口轉(zhuǎn)換系統(tǒng)。針對(duì)系統(tǒng)硬件和軟件進(jìn)行設(shè)計(jì),利用核心控制模塊、CAN總線通信接口、PROFIBUS?DP總線通信接口模塊、異步串行通信接口轉(zhuǎn)換模塊、電源轉(zhuǎn)換模塊和總線選擇開(kāi)關(guān)模塊構(gòu)成硬件結(jié)構(gòu),在總架構(gòu)的基礎(chǔ)上給出了拓?fù)浣Y(jié)構(gòu),重點(diǎn)設(shè)計(jì)了核心控制模塊和PROFIBUS?DP總線通信接口模塊。在硬件結(jié)構(gòu)基礎(chǔ)上設(shè)計(jì)軟件程序,并在程序模塊基礎(chǔ)上研究了軟件轉(zhuǎn)換流程。為檢測(cè)系統(tǒng)性能,設(shè)計(jì)對(duì)比實(shí)驗(yàn),結(jié)果表明,基于現(xiàn)場(chǎng)總線設(shè)計(jì)的異步串行通信接口轉(zhuǎn)換系統(tǒng)能夠準(zhǔn)確地轉(zhuǎn)換出數(shù)據(jù),確保結(jié)果的可靠性,CPU利用率高于傳統(tǒng)系統(tǒng)。
關(guān)鍵詞: 異步串行通信; 通信接口轉(zhuǎn)換; 現(xiàn)場(chǎng)總線; 系統(tǒng)設(shè)計(jì); 控制模塊; 實(shí)驗(yàn)分析
中圖分類號(hào): TN915?34? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)21?0017?04
Design of asynchronous serial communication interface conversion system
based on field bus
PAN Hao
(College of Information Engineering, Huanghuai University, Zhumadian 463000, China)
Abstract: In the conversion process of traditional asynchronous serial communication interface conversion system, the utilization of its CPU is poor and the reliability of converted data is not high. In order to solve the above problems, a new asynchronous serial communication interface conversion system is designed based on field bus. The hardware and software of the system are designed. The core control module, CAN bus communication interface, PROFIBUS?DP bus communication interface module, asynchronous serial communication interface conversion module, power supply conversion module and bus selection switch module are used to constitute the hardware structure. On the basis of the general framework, the topology structure is given. The core control module and the PROFIBUS?DP bus communication interface module are emphatically designed. On the basis of the hardware structure, the software program is designed, and the software conversion process is studied on the basis of the program module. In order to test the performance of the system, a comparative experiment is designed. The experimental results show that the asynchronous serial communication interface conversion system based on field bus can accurately convert data and ensure the reliability of the results, and the utilization rate of its CPU is higher than that of the traditional system.
Keywords: asynchronous serial communication; communication interface transformation; field bus; system design; control module; experiment analysis
0? 引? 言
步入20世紀(jì)80年代后,計(jì)算機(jī)、通信、控制和模塊化集成技術(shù)不斷發(fā)展,現(xiàn)場(chǎng)總線技術(shù)成為了一種新興技術(shù)?,F(xiàn)場(chǎng)總線能夠?qū)崿F(xiàn)雙向通信、串行通信、多節(jié)點(diǎn)數(shù)字通信,是自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)[1]。近年來(lái),現(xiàn)場(chǎng)總線技術(shù)發(fā)展迅猛,進(jìn)一步促成了通信網(wǎng)絡(luò)的多樣性,給用戶帶來(lái)了更多的選擇?,F(xiàn)場(chǎng)總線技術(shù)在帶來(lái)方便的同時(shí),也帶來(lái)了一系列問(wèn)題,主要問(wèn)題有:通信設(shè)備引進(jìn)價(jià)格高,每種總線適用的領(lǐng)域十分有限,缺少成熟的總線標(biāo)準(zhǔn),不同的現(xiàn)場(chǎng)總線要設(shè)定不同的標(biāo)準(zhǔn)??偩€標(biāo)準(zhǔn)的不同嚴(yán)重限制了總線與總線之間的交流,在同一個(gè)現(xiàn)場(chǎng)有時(shí)候使用的總線標(biāo)準(zhǔn)也有所不同,必須要使用更高層的網(wǎng)絡(luò)才能完成通信,內(nèi)部設(shè)備是可以直接通信的,如果與其他設(shè)備相連,就要研究一個(gè)標(biāo)準(zhǔn)的通信接口[2]。
異步串行通信是現(xiàn)場(chǎng)總線的重要工作之一,設(shè)定異步串行通信接口轉(zhuǎn)換系統(tǒng)具有很強(qiáng)的現(xiàn)實(shí)意義[3]。目前研究的異步串行通信接口轉(zhuǎn)換系統(tǒng)僅是針對(duì)單一現(xiàn)場(chǎng)總線進(jìn)行轉(zhuǎn)換,這樣的轉(zhuǎn)換系統(tǒng)接口功能十分單一,不具備靈活性,難以滿足目前復(fù)雜的現(xiàn)場(chǎng)工業(yè)要求。本文針對(duì)PROFIBUS現(xiàn)場(chǎng)總線和CAN現(xiàn)場(chǎng)總線設(shè)計(jì)了一種接口轉(zhuǎn)換系統(tǒng),該轉(zhuǎn)換系統(tǒng)能夠共享網(wǎng)絡(luò)資源,從而達(dá)到異構(gòu)網(wǎng)絡(luò)互聯(lián)的效果,轉(zhuǎn)換系統(tǒng)中選擇的控制器為集成CAN控制器,消耗功率低,性能穩(wěn)定,配合SoC單片機(jī),可提高系統(tǒng)性能。
1? 異步串行通信接口轉(zhuǎn)換系統(tǒng)硬件設(shè)計(jì)
本文設(shè)計(jì)的異步串行通信接口轉(zhuǎn)換系統(tǒng)擁有6個(gè)模塊,分別為:核心控制模塊、CAN總線通信接口、PROFIBUS?DP總線通信接口模塊、異步串行通信接口轉(zhuǎn)換模塊、電源轉(zhuǎn)換模塊和總線選擇開(kāi)關(guān)模塊[4]。設(shè)計(jì)的硬件結(jié)構(gòu)圖如圖1所示。
系統(tǒng)擁有3個(gè)端點(diǎn),這3個(gè)端點(diǎn)有2個(gè)連接轉(zhuǎn)換系統(tǒng)的開(kāi)關(guān),有1個(gè)連接轉(zhuǎn)換系統(tǒng)的芯片組,通過(guò)CPU、GFX、存儲(chǔ)器、PCI設(shè)備共同構(gòu)成轉(zhuǎn)換系統(tǒng)的拓?fù)浣Y(jié)構(gòu),如圖2所示。
1.1? 核心控制模塊
核心控制模塊指的是單片機(jī)C8051F040,內(nèi)部核心部件為CAN控制器,C8051F040單片機(jī)占地面積小、消耗功率低,能夠在短時(shí)間內(nèi)處理大量數(shù)據(jù),具有很強(qiáng)的抗干擾能力,轉(zhuǎn)換系統(tǒng)加入了C8051F040單片機(jī)后,硬件的集成復(fù)雜度和開(kāi)發(fā)成本都可以有效降低。C8051F040單片機(jī)由Cygnal公司生產(chǎn),內(nèi)核為CIP?51,內(nèi)部的指令集為8051指令集,CIP?51與8051指令集能夠很好地兼容,提高系統(tǒng)的工作頻率,最高頻率可達(dá)30 MHz,核心控制模塊內(nèi)部還擁有一個(gè)64 KB的FLASH RAM和4 KB的數(shù)據(jù)存儲(chǔ)器[5]。核心控制模塊內(nèi)部雖然只有一個(gè)芯片,但是這個(gè)芯片集成了采集功能、控制功能、處理功能等多種功能,這一芯片的加入不僅降低了占地面積,也使系統(tǒng)在運(yùn)行時(shí)消耗更低的功耗,擁有更高的可靠性[6]。
核心控制模塊內(nèi)部結(jié)構(gòu)圖如圖3所示。
8051指令集采用的結(jié)構(gòu)是高速流水線結(jié)構(gòu),能夠同時(shí)兼容核心控制模塊中的CIP?51內(nèi)核,提高工作速度,最高可以達(dá)到45 MIPS。圖1中的CAN控制器選擇的規(guī)范為2.0B規(guī)范,配置32個(gè)發(fā)送裝置和接收裝置,單片機(jī)的調(diào)試接口為全速接口和非侵入式接口。ADC通道為8位,自帶PGA,由模擬電路開(kāi)關(guān)控制,DAC通道為12位,以可編程的方式更新數(shù)據(jù)。FLASH存儲(chǔ)器的內(nèi)部字節(jié)為64 KB,RAM內(nèi)部的字節(jié)[7]為4 352 B。
核心控制模塊在外部也設(shè)置了可尋址64 KB的外部數(shù)據(jù)存儲(chǔ)器接口,通過(guò)4個(gè)UART串行接口連接12個(gè)通用的定時(shí)器,每個(gè)定時(shí)器內(nèi)部都有一個(gè)捕捉/比較模塊的陣列。除了通用定時(shí)器之外,核心控制模塊內(nèi)部還有看門狗定時(shí)器、VDD監(jiān)視器和溫度傳感器。
為加強(qiáng)核心控制模塊的整體性,整個(gè)模塊選用的控制協(xié)議都為CAN控制協(xié)議。被采集到的數(shù)據(jù)通過(guò)串口通信模塊進(jìn)入核心控制模塊,利用轉(zhuǎn)換器轉(zhuǎn)換成符合CAN控制協(xié)議或PROFIBUS?DP協(xié)議的數(shù)據(jù),再將這些數(shù)據(jù)上傳給現(xiàn)場(chǎng)總線網(wǎng)絡(luò),由現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中的異步串行通信接口完成數(shù)據(jù)轉(zhuǎn)換[8]。除此之外,核心控制模塊還具備讀入數(shù)據(jù)的能力,所有的讀入數(shù)據(jù)都可以利用串口協(xié)議轉(zhuǎn)換給滿足現(xiàn)場(chǎng)串口設(shè)備或儀表要求的數(shù)據(jù),這種轉(zhuǎn)換方式被稱為逆向轉(zhuǎn)換[9]。
PROFIBUS?DP協(xié)議的數(shù)據(jù)幀格式如圖4所示。
1.2? PROFIBUS?DP總線通信接口模塊
PROFIBUS?DP總線通信接口模塊主要包括三部分:協(xié)議控制器、光耦隔離電路、總線驅(qū)動(dòng)器。為了更好地實(shí)現(xiàn)PROFIBUS?DP總線通信接口模塊的通信功能,在通信模塊的總線上設(shè)定了一個(gè)網(wǎng)絡(luò)設(shè)備,由該網(wǎng)絡(luò)設(shè)備統(tǒng)一與其他網(wǎng)絡(luò)設(shè)備進(jìn)行數(shù)據(jù)交換[10]。PROFIBUS現(xiàn)場(chǎng)總線是模塊的核心元件,控制各個(gè)設(shè)備的功能實(shí)現(xiàn)。
通信接口工作狀態(tài)如圖5所示。
通信接口模塊共有7層,SPC3被設(shè)定在最底下的一層,配合微處理器處理第2~7層的數(shù)據(jù),第2層的數(shù)據(jù)集成在芯片中,所以處理起來(lái)比較困難,其他幾層的數(shù)據(jù)直接由設(shè)備反饋,處理起來(lái)相對(duì)比較容易。作為一款智能性極強(qiáng)的芯片,SPC3適用于任何的通信設(shè)備,具有獨(dú)立完成通信協(xié)議的能力,加入SPC3芯片后,PROFIBUS?DP總線通信接口模塊的執(zhí)行能力更強(qiáng)。由于是硬件驅(qū)動(dòng)總線的存取工作,所以數(shù)據(jù)交換必須要在RAM中進(jìn)行。通過(guò)數(shù)據(jù)接口連接應(yīng)用對(duì)象,所有的數(shù)據(jù)交換都是以獨(dú)立方式存在。SPC3智能芯片通過(guò)集成得到完整的DP協(xié)議,集成后,通信模塊對(duì)數(shù)據(jù)的監(jiān)測(cè)能力大大加強(qiáng),只要波特率在9.6 Kb/s~12 Mb/s之間的數(shù)據(jù),都可以檢測(cè)到[11]。
接口模塊中的微處理器在整個(gè)通信工作中發(fā)揮著重要作用,因此必須要設(shè)定能夠調(diào)節(jié)微處理器的固態(tài)程序。除此之外,接口模塊中還設(shè)有方式寄存器、狀態(tài)寄存器、中斷寄存器。
PROFIBUS?DP總線通信接口模塊結(jié)構(gòu)圖如圖6所示。
上述通信模塊具有很強(qiáng)的兼容能力,能夠兼容80C32芯片、80X86芯片、80C166芯片、80C165芯片、80C167芯片和HC11芯片、HC16芯片、HC916芯片,通過(guò)簡(jiǎn)單的用戶接口實(shí)現(xiàn)通信循環(huán)和應(yīng)用循環(huán)??偩€通信接口模塊使用的傳輸技術(shù)為RS 485傳輸技術(shù),選用的驅(qū)動(dòng)器為差分驅(qū)動(dòng)器,具有很強(qiáng)的抗干擾能力,即使是長(zhǎng)距離的數(shù)據(jù)傳輸,受到外界的干擾也很小,差分驅(qū)動(dòng)器的驅(qū)動(dòng)能力強(qiáng)、消耗功率低。
總線驅(qū)動(dòng)器件結(jié)構(gòu)圖如圖7所示。
觀察圖7可知,總線驅(qū)動(dòng)器上的數(shù)據(jù)以雙向的方式傳播,傳播協(xié)議共有4個(gè),分別為TIA/EIA?422?B標(biāo)準(zhǔn)、TIA/EIA?485?A標(biāo)準(zhǔn)、ITU推薦標(biāo)準(zhǔn)、V.1和X.27標(biāo)準(zhǔn),對(duì)數(shù)據(jù)的處理速度最高可以達(dá)到50 Mbaud,輸入和輸出電壓的波動(dòng)幅度很大[12]??偩€電壓的波動(dòng)會(huì)影響SPC3的正常運(yùn)行,甚至可能造成損壞,因此需要加入光電隔離器件,隔離最大電壓和最大轉(zhuǎn)換速率。最大電壓和最大轉(zhuǎn)換速率數(shù)值越大,選用的光電隔離器件速度越高,目前比較典型的光速隔離芯片為HCPL7101芯片,該芯片不僅傳播速度快,而且是光耦芯片。
2? 異步串行通信接口轉(zhuǎn)換系統(tǒng)軟件設(shè)計(jì)
在完成硬件工作后,對(duì)軟件進(jìn)行編程和調(diào)試,為了使單片機(jī)和微控制器更好的配合,利用803X匯編器和805X編譯器開(kāi)發(fā)軟件,編寫(xiě)源程序?yàn)镃I5程序,開(kāi)發(fā)環(huán)境為Keil μVision2,以模塊化結(jié)構(gòu)編寫(xiě)軟件程序,確保每個(gè)模塊都能夠有明確的分工,每個(gè)模塊都對(duì)應(yīng)有自己的代碼,使維護(hù)更加方便[13]。
軟件程序模塊結(jié)構(gòu)圖如圖8所示。
核心控制器負(fù)責(zé)轉(zhuǎn)換串行接口與CAN總線接口之間的協(xié)議,位于主程序模塊中,負(fù)責(zé)完成初始化工作和循環(huán)工作,在同一時(shí)間完成接收、發(fā)送和查詢工作?;诂F(xiàn)場(chǎng)總線的異步串行通信接口轉(zhuǎn)換系統(tǒng)軟件工作流程如圖9所示。
本文設(shè)計(jì)的異步串行通信接口轉(zhuǎn)換系統(tǒng)軟件程序使用的現(xiàn)場(chǎng)總線并非單一的現(xiàn)場(chǎng)總線,而是深層次開(kāi)發(fā)的現(xiàn)場(chǎng)總線,通過(guò)多次判斷完成數(shù)據(jù)轉(zhuǎn)換。
3? 實(shí)驗(yàn)研究
3.1? 實(shí)驗(yàn)?zāi)康?/p>
為了驗(yàn)證所設(shè)計(jì)的異步串行通信接口轉(zhuǎn)換系統(tǒng)的功能及性能,設(shè)定實(shí)驗(yàn)組件,與傳統(tǒng)轉(zhuǎn)換系統(tǒng)進(jìn)行實(shí)驗(yàn)對(duì)比,分析實(shí)驗(yàn)結(jié)果。
3.2? 實(shí)驗(yàn)硬件測(cè)試平臺(tái)建立
設(shè)計(jì)的實(shí)驗(yàn)硬件平臺(tái)如圖10所示。
設(shè)定PC機(jī)和CP5611網(wǎng)絡(luò)接口卡作為測(cè)試系統(tǒng)的網(wǎng)絡(luò)主站,測(cè)試過(guò)程選擇的開(kāi)發(fā)板為DP?51開(kāi)發(fā)板。同時(shí)使用傳統(tǒng)的異步串行通信接口轉(zhuǎn)換系統(tǒng)和基于現(xiàn)場(chǎng)總線的異步串行通信接口轉(zhuǎn)換系統(tǒng)進(jìn)行實(shí)驗(yàn)。
3.3? 實(shí)驗(yàn)結(jié)果與分析
通過(guò)分析轉(zhuǎn)換系統(tǒng)數(shù)據(jù)的上行速率和轉(zhuǎn)換接收間隔,判斷兩個(gè)系統(tǒng)的CPU利用率,得到的實(shí)驗(yàn)圖如圖11所示。
分析圖11可知,隨著接收時(shí)間的增加,轉(zhuǎn)換系統(tǒng)的上行速率逐漸減小,在極限狀態(tài)下,上行速率大約為1 120 Kb/s,在這一速率下,本文轉(zhuǎn)換系統(tǒng)的CPU利用率要高于傳統(tǒng)轉(zhuǎn)換系統(tǒng)的CPU利用率,這是因?yàn)榛诂F(xiàn)場(chǎng)總線設(shè)計(jì)的異步串行通信接口轉(zhuǎn)換系統(tǒng)轉(zhuǎn)換后的PCIe板卡和ARM設(shè)備都能夠定時(shí)接收數(shù)據(jù),設(shè)備中的多個(gè)電路以疊加的方式運(yùn)行,即使是多任務(wù)同時(shí)運(yùn)行也不會(huì)影響系統(tǒng)的任務(wù)調(diào)度結(jié)果,本文轉(zhuǎn)換系統(tǒng)與傳統(tǒng)轉(zhuǎn)換系統(tǒng)的轉(zhuǎn)換準(zhǔn)確率如圖12所示。
通過(guò)圖12可知,在相同的轉(zhuǎn)換時(shí)間內(nèi),基于現(xiàn)場(chǎng)總線的異步串行通信接口轉(zhuǎn)換系統(tǒng)的轉(zhuǎn)換數(shù)據(jù)準(zhǔn)確率要高于傳統(tǒng)異步串行通信接口轉(zhuǎn)換系統(tǒng)的轉(zhuǎn)換數(shù)據(jù)準(zhǔn)確率,數(shù)據(jù)更加可靠,數(shù)據(jù)中的轉(zhuǎn)換器具備基本的輸入和輸出功能。
4? 結(jié)? 語(yǔ)
本文針對(duì)目前使用最廣泛的PROFIBUS現(xiàn)場(chǎng)總線和CAN現(xiàn)場(chǎng)總線技術(shù)設(shè)計(jì)了轉(zhuǎn)換系統(tǒng),包括系統(tǒng)的總體結(jié)構(gòu)和軟件程序。在本文設(shè)計(jì)的系統(tǒng)中,SPC3協(xié)議芯片和C8051F040單片機(jī)發(fā)揮著重要作用,在設(shè)計(jì)之前,要詳細(xì)了解協(xié)議芯片和控制器的說(shuō)明資料。
由于單片機(jī)自身的局限性,所以本文設(shè)計(jì)的轉(zhuǎn)換系統(tǒng)在很多方面還有不足,在設(shè)計(jì)時(shí)可以加入FPGA技術(shù)增加系統(tǒng)的擴(kuò)展性,同時(shí)可以加入網(wǎng)絡(luò)接口,提高系統(tǒng)的適用范圍。
參考文獻(xiàn)
[1] 李敏艷.基于DSP的CAN總線轉(zhuǎn)換器的設(shè)計(jì)[J].世界產(chǎn)品與技術(shù),2016,20(10):60?61.
[2] 田晉羽,吳迪,劉建秋.基于RS485的現(xiàn)場(chǎng)總線監(jiān)控系統(tǒng)的設(shè)計(jì)[J].中國(guó)科技博覽,2019,25(10):105.
[3] 嚴(yán)法高,陳虹,許慧.基于現(xiàn)場(chǎng)總線的電梯監(jiān)控系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2017,21(6):85?87.
[4] 李斌,王曉航,施沖.嵌入式通信管理裝置的設(shè)計(jì)和實(shí)現(xiàn)[J].水電與抽水蓄能,2018,28(3):6?8.
[5] 楊志家.面向工業(yè)現(xiàn)場(chǎng)總線系統(tǒng)的SoC關(guān)鍵技術(shù)研究與設(shè)計(jì)[J].工業(yè)信息學(xué)研究室,2018,40(1):60?66.
[6] 郝銘,劉景泰,盧桂章.基于RS 485總線分布式智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2018,20(2):23?25.
[7] 喬有田.基于現(xiàn)場(chǎng)總線的語(yǔ)音通信方法的研究[J].揚(yáng)州職業(yè)大學(xué)學(xué)報(bào),2019,10(2):44?46.
[8] 張亞,韓芳.基于DSP的現(xiàn)場(chǎng)總線通信節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2019,6(4):9?11.
[9] 湯佳明,安偉.基于LabVIEW的上位機(jī)串口通信程序設(shè)計(jì)[J].電子設(shè)計(jì)工程,2018,26(11):86?90.
[10] 鞏林玉,周治邦,員春欣.基于現(xiàn)場(chǎng)總線的故障安全通信協(xié)議研究[J].工業(yè)控制計(jì)算機(jī),2018,28(7):1686?1688.
[11] 王忠清,陳雪松,曹微言,等.基于DeviceNet現(xiàn)場(chǎng)總線的從站接口卡的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)計(jì)量,2017,17(3):13?16.
[12] 謝經(jīng)明,周祖德,陳幼平,等.基于現(xiàn)場(chǎng)總線的數(shù)控系統(tǒng)通信環(huán)節(jié)時(shí)間特性分析[J].計(jì)算機(jī)集成制造系統(tǒng),2018,9(4):285?288.
[13] 歐陽(yáng)琴,李哲英.基于現(xiàn)場(chǎng)總線技術(shù)的通信接口轉(zhuǎn)換網(wǎng)橋的實(shí)現(xiàn)[J].北京交通大學(xué)學(xué)報(bào),2019,23(6):38?42.
作者簡(jiǎn)介:潘? 浩(1981—),男,河南信陽(yáng)人,博士,實(shí)驗(yàn)師,研究方向?yàn)橥ㄐ偶夹g(shù)、軟件設(shè)計(jì)與測(cè)試。