1 引言 近年來,使用RS-485傳輸技術(shù)的PROFIBUS-DP/FMS現(xiàn)場總線網(wǎng)絡在工業(yè)自動化領(lǐng)域得到了廣泛的應用。這種網(wǎng)絡覆蓋范圍有限,傳輸速度不高,如果把它和覆蓋范圍廣、速度高的以太網(wǎng)連接起來,就叮以利用以太網(wǎng)的優(yōu)勢實現(xiàn)遠程監(jiān)控等功能。解決這兩種異質(zhì)網(wǎng)絡互連問題的途徑之一是開發(fā)能夠在網(wǎng)間進行轉(zhuǎn)換的嵌入式網(wǎng)關(guān)。 而在現(xiàn)有的嵌入式網(wǎng)關(guān)中,一類是基于專用的網(wǎng)絡處理器,價格昂貴,可擴展性不強;另一類則是基于通用的微處理器.但往往還需要外接以太網(wǎng)物理層控制芯片,使得電路設(shè)計復雜,工作穩(wěn)定性降低。針對這些不足,本文設(shè)計了一種基于ARM Cortex-M3微處理器和嵌入式實時操作系統(tǒng)μC/OS-II的單芯片嵌入式網(wǎng)關(guān),在PROFIBUS-DP/FMS現(xiàn)場總線和以太網(wǎng)之間進行數(shù)據(jù)交換。 2 硬件設(shè)計 嵌入式網(wǎng)關(guān)以內(nèi)核為ARM Cortex-M3的LM3S6916微處理器為核心搭建硬件平臺,其硬件結(jié)構(gòu)框圖如圖1所示。 ![]() 圖1 嵌入式網(wǎng)關(guān)硬件結(jié)構(gòu)框圖 2.1 微處理器 微處理器是整個嵌入式網(wǎng)關(guān)的核心.在工業(yè)以太網(wǎng)中作為智能節(jié)點的主控制器。本文選用以ARM Cortex-M3為內(nèi)核的LM3S6916微處理器.它是基于ARMy7-M架構(gòu)的32位RSlC處理機。Cortex-M3是ARM最近專為低功耗、小尺寸、短中斷延時和優(yōu)異的確定性而設(shè)計的一款內(nèi)核。LM3S6916在CORTEX-M3的基礎(chǔ)上,還集成了256KB的FLASH和64KB的SRAM存儲器、睡眠模塊、正交編碼器、ADC、帶死區(qū)PWM、溫度傳感器、模擬比較器、UART、SSI、通用定時器,I2C、CCP等外設(shè)。除此之外,它還是第一款同時集成了10/100M以太網(wǎng)MAC和物理層控制器的ARM處理器。它以8位單片機的價格提供32位的計算性能,非常適合用于對成本敏感的工業(yè)應用。 2.2 存儲系統(tǒng) LM3S6916內(nèi)部集成的存儲器已經(jīng)能夠滿足本應用的需要,因此不用在芯片外部擴展存儲器。Cortex-M3內(nèi)核對4GB的可尋址存儲空間提供簡單和固定的存儲器映射,256KB的FLASH用作存儲異常/中斷向量表以及操作系統(tǒng)鏡像,系統(tǒng)復位后從中讀取指令執(zhí)行,起始地址為0x00000000,64KB的SRAM作為程序運行空間和數(shù)據(jù)空間.啟動代碼將系統(tǒng)鏡像復制到SRAM后執(zhí)行,起始地址為0x20000000。 2.3 串口 串行接口使用片內(nèi)集成的UART接口,外接MAX1485芯片進行電平轉(zhuǎn)換,實現(xiàn)和RS-485現(xiàn)場總線網(wǎng)絡的連接。 2.4 以太網(wǎng)接口 芯片內(nèi)部集成的全雙工10/100M以太網(wǎng)控制器遵循IEEE802.3規(guī)范,完全支持10BASE-T和100BASE-TX標準,支持對10BaseT拓撲結(jié)構(gòu)的自動極性修正,允許2個診斷LED引腳編程輸出。 芯片外部只需外加一個1:1的隔離變壓器和RJ-45接口就可實現(xiàn)與以太網(wǎng)的連接。LM3S6916芯片的XTALPPHY和XTALNPHY引腳跨接一個25MHz的無源晶振,作為外部時鐘信號輸入。需要注意的是,MDIO引腳需要通過一個10KΩ的上拉電阻連接到+3.3V電源上,以使MAC子層的媒體無關(guān)管理接口(MII)正常工作。 此外,硬件部分還包括電源部分、復位電路等,在此不是重點,就不詳細介紹了。 3 軟件設(shè)計 嵌入式系統(tǒng)的軟件部分分為BootLoader、操作系統(tǒng)與網(wǎng)絡協(xié)議棧、應用程序三部分。 3.1 BootLoader的編寫 Bootloader是運行于操作系統(tǒng)之前的引導程序,主要任務是完成系統(tǒng)啟動之前必要的硬件初始化和操作系統(tǒng)加載。BootLoader代碼與微處理器芯片的內(nèi)核結(jié)構(gòu)、具體芯片和使用的操作系統(tǒng)等因素有關(guān),比較復雜。為了簡化開發(fā)人員的工作,Luminary公司為它生產(chǎn)的LM3S系列微處理器提供了免費下載的外設(shè)驅(qū)動程序庫,包括了各種外設(shè)的驅(qū)動程序和通用的Bootloader,通常只需根據(jù)具體硬件進行很少的改動即可正常運行。在本例中,只需更改程序中定義的FLASH和SRAM的大小。 3.2 操作系統(tǒng)與網(wǎng)絡協(xié)議棧 本文所設(shè)計的嵌人式網(wǎng)關(guān)并沒有過多復雜的功能,亦不需要圖形化的用戶接口.硬件資源有限,有一定的實時性要求,因此我們選用μC/OS-II,它是一個可剪裁、源碼開放、結(jié)構(gòu)小巧、搶先式的實時多任務內(nèi)核,主要面向中小型嵌入式系統(tǒng),具有執(zhí)行效率高、占用空間小(10KB左右)、可移植性強、實時性能優(yōu)良和可擴展性強等特點。 對μC/OS-II的移植有以下幾個步驟: (1)下載μC/OS-Ⅱ源代碼; (2)根據(jù)微處理器配置和編譯內(nèi)核; (3)編寫相應的設(shè)備驅(qū)動程序; (4)下載、調(diào)試和執(zhí)行內(nèi)核,加載應用程序。 要接入以太網(wǎng),還需要TCP/IP網(wǎng)絡協(xié)議棧的支持,為此我們選擇移植1wlP,它是瑞士計算機科學院(Swedish Institute of Computer Science)的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。1wlP的含義是Light Weight(輕型)IP協(xié)議。IwIP可以移植到操作系統(tǒng)上。也可以在無操作系統(tǒng)的情況下獨立運行。1wIP TCP/IP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,這使1wIP協(xié)議棧適合在低端嵌入式系統(tǒng)中使用。 對1wlP的移植與μC/OS-II的移植類似,在此不再贅述。 3.3 應用程序的實現(xiàn) 應用程序主要完成以太網(wǎng)接口和串行接口間的數(shù)據(jù)傳輸。此應用系統(tǒng)中有4個任務或稱為進程:以太網(wǎng)網(wǎng)接收進程、以太網(wǎng)發(fā)送進程、串口接收進程和串口發(fā)送進程。這4個線程可并發(fā)執(zhí)行.因網(wǎng)絡速度與串口速度存在著差異,需設(shè)置相應的緩沖區(qū)來對收發(fā)數(shù)據(jù)進行緩沖。在此應用系統(tǒng)中設(shè)置兩個環(huán)形緩沖區(qū),其中之一用于接收以太網(wǎng)數(shù)據(jù),然后串口從此緩沖區(qū)中取出數(shù)據(jù)發(fā)送。另一緩沖區(qū)用于接收串口數(shù)據(jù),然后以太網(wǎng)控制器取出此緩沖區(qū)中數(shù)據(jù)發(fā)送出去。我們利用Socket套接字編寫了一個簡單的客戶機/服務器模式的應用程序,實現(xiàn)現(xiàn)場總線和以太網(wǎng)上位機的通信。以太網(wǎng)上位機被設(shè)定為服務器.它運行了服務器端的應用程序。該程序主要用于監(jiān)聽服務器端口、接受客戶端的連接請求、接受客戶端的信息、向客戶端發(fā)送信息等。嵌人式網(wǎng)關(guān)系統(tǒng)中運行的是客戶端程序,該程序主要是用于申請連接到服務器、將現(xiàn)場總線方發(fā)來的消息向服務器發(fā)送、處理服務器發(fā)來的信息、將這些信息發(fā)送給現(xiàn)場總線系統(tǒng)。主程序流程圖如圖2所示。 ![]() 圖2 主程序流程圖 進程間需實現(xiàn)相互通信和同步,共用緩沖區(qū)既要互斥執(zhí)行又要同步執(zhí)行,其操作遵循生產(chǎn)者和消費者模型。進程問的互斥操作采用信號量來實現(xiàn)。線程間的同步通過設(shè)置兩個指針來實現(xiàn),一個是讀指針,另一個是寫指針,寫指針指向隊頭,初始化為0,讀指針指向隊尾.初始化為bufsize-1。當寫數(shù)據(jù)時。比較讀寫指針是否相等,相I司則寫線程阻塞;不相等,則寫入數(shù)據(jù),然后將寫指針加1。當讀數(shù)據(jù)時,讀指針加1,然后比較讀寫指針是否相等,相等則讀線程阻塞;不相等,則讀出數(shù)據(jù)。 4 結(jié)語 本文使用內(nèi)核為ARM Cortex-M3的LM3S6916微處理器設(shè)計了一種單芯片的嵌入式網(wǎng)關(guān)。經(jīng)實驗驗證,它可以實現(xiàn)PROFIBUS-DP/FMS現(xiàn)場總線網(wǎng)絡和以太網(wǎng)的互連。相比其它的設(shè)計方案,本文的方案具有高性能、低功耗、低成本、高穩(wěn)定性、開發(fā)迅速等優(yōu)點,因此具有廣闊的應用前景。 本文作者創(chuàng)新點:使用新型的ARM芯片設(shè)計了單芯片的嵌入式網(wǎng)關(guān),實現(xiàn)了PROFIBUS—DP/FMS現(xiàn)場總線與以太網(wǎng)的互連。該網(wǎng)關(guān)簡單可靠、實用性強。 預計正式產(chǎn)品投入市場之后,每年能取得10萬元以上的經(jīng)濟效益。 作者:任強,程新明,徐洞成,戴喻 來源:《微計算機信息》(嵌入式與SOC)2009年第2-2期 |