<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種多協(xié)議的嵌入式總線集成器的設(shè)計(jì)與研究

          一種多協(xié)議的嵌入式總線集成器的設(shè)計(jì)與研究

          作者: 時(shí)間:2009-10-28 來源:網(wǎng)絡(luò) 收藏
          由于工業(yè)現(xiàn)場(chǎng)在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集等方面得到了廣泛的應(yīng)用,因此對(duì)于的需求也應(yīng)運(yùn)而生。不同種類的現(xiàn)場(chǎng)側(cè)重于各自的應(yīng)用領(lǐng)域,導(dǎo)致基于各種現(xiàn)場(chǎng)總線的產(chǎn)品由于的不同而無法相互通信。而一些傳統(tǒng)的總線方法采用總線橋級(jí)連的方式來完成之間的通信,存在通信延時(shí)大、穩(wěn)定性差、節(jié)點(diǎn)通信困難等缺點(diǎn)。針對(duì)以上問題,本文提出一套總線器的方案。該系統(tǒng)同時(shí)支持LonWorks、PPI、Open和TCP/IP協(xié)議, C8051F120作為主控制芯片,采用模塊化結(jié)構(gòu),提供實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)功能,具有成本低、實(shí)時(shí)性高、可移植能力強(qiáng)等特點(diǎn),有較高的組態(tài)性和靈活性[1~2]
          1 系統(tǒng)總體與工作流程
          1.1 系統(tǒng)的總體

            系統(tǒng)結(jié)構(gòu)框圖如圖1所示。C8051F120是整個(gè)系統(tǒng)的主控制芯片,負(fù)責(zé)對(duì)數(shù)據(jù)的處理和交換,包括通過RTL8019與以態(tài)網(wǎng)的通信,通過UART口與PPI總線通信,通過RS232口與LonWorks總線通信以及和總線控制器SJA1000通信等。模塊和LON模塊分別完成對(duì)CAN和LON數(shù)據(jù)的收發(fā)處理。一方面,系統(tǒng)分別作為L(zhǎng)onWorks、PPI、CANOpen總線的一個(gè)節(jié)點(diǎn),完成相應(yīng)通信協(xié)議的通信及數(shù)據(jù)解析;另一方面,系統(tǒng)又要能夠完成各總線之間的數(shù)據(jù)轉(zhuǎn)發(fā)與共享。同時(shí),為了支持遠(yuǎn)程監(jiān)控能力,系統(tǒng)必須提供以太網(wǎng)接口以支持Internet功能。為了在現(xiàn)場(chǎng)提供監(jiān)測(cè)環(huán)境,系統(tǒng)設(shè)計(jì)了人機(jī)界面[3]

          本文引用地址:http://www.ex-cimer.com/article/152308.htm

          1.2 各模塊工作流程
            主控制芯片C8051F120與RTL8019之間的接口是通過并行方式擴(kuò)展的,為避免RTL8019A在C8051F120上的映射地址空間與 C8051F120內(nèi)部的8KB RAM地址空間 (0X0000~0X3FFF)重迭,擴(kuò)展的外部設(shè)備被放到最高端(0X8000~0XFFFF),并采用非復(fù)用方式連接。模塊中還包括RS232與RS485之間的轉(zhuǎn)換。SN75LBC176是RS485差分總線收發(fā)器芯片。RS232數(shù)據(jù)由TX0通過光隔傳送到SN75LBC176的發(fā)送端 ,同時(shí)驅(qū)動(dòng)發(fā)送控制端,數(shù)據(jù)就由SN75LBC176發(fā)送到RS485總線。當(dāng)SN75LBC176接收數(shù)據(jù)時(shí),數(shù)據(jù)傳送到RS232的RX0端。這樣就完成RS485到RS232的轉(zhuǎn)換。在系統(tǒng)中,為了提供人機(jī)交互的功能,設(shè)計(jì)了T6963C點(diǎn)陣式液晶圖形顯示控制器,在設(shè)計(jì)時(shí),需要用一根地址線來實(shí)現(xiàn)液晶的數(shù)據(jù)通道和指令通道的區(qū)分。T6963C外接114×64的液晶顯示屏,可以提供監(jiān)測(cè)數(shù)據(jù)顯示的實(shí)例。
            CAN總線模塊由SJA1000、82C250、6N137等芯片組成。SJA1000是并行接口的CAN控制器。82C250是CAN控制器接口芯片。當(dāng)C8051F120要向某節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),它向SJA1000的一些緩沖器寫數(shù)據(jù)和命令。數(shù)據(jù)通過SJA1000處理后,合成CAN幀格式,通過6N137至82C250,由82C250的差分端CANH和CANL傳送到物理總線。外部節(jié)點(diǎn)發(fā)送過來的數(shù)據(jù)通過82C250經(jīng)光電隔離器6N137后被SJA1000接收,存放在SJA1000相應(yīng)的寄存器中。C8051F120就可以讀取這些CAN幀格式數(shù)據(jù)。
            LON模塊由MC143150、FTT-10A、MC145407以及外擴(kuò)SRAM儲(chǔ)存器IS61C256AH-15N和外擴(kuò)Flash存儲(chǔ)器AT29C512組成。MC143150是LonWorks控制芯片,含有Lontalk協(xié)議的固態(tài)軟件,主要用于LonWorks數(shù)據(jù)的處理。FTT-10A 是LonWorks收發(fā)器,它是一種變壓器耦合收發(fā)器,支持網(wǎng)絡(luò)的自由拓?fù)浣Y(jié)構(gòu),作為L(zhǎng)ON網(wǎng)的網(wǎng)絡(luò)介質(zhì)的接口。MC145407是電平轉(zhuǎn)換芯片,負(fù)責(zé)MC143150與RS232之間的電平轉(zhuǎn)換。當(dāng)C8051F120要向MC143150發(fā)送數(shù)據(jù)時(shí),C8051F120把數(shù)據(jù)發(fā)送到串口緩沖區(qū),通過MC145407將I/O引腳輸入的TTL 電平和輸出的CMOS 電平轉(zhuǎn)換為EIA232C電平。MC143150收到數(shù)據(jù)信息后,將數(shù)據(jù)讀入儲(chǔ)存于MC143150的緩沖區(qū)中,然后由MC143150 打包為L(zhǎng)onWorks網(wǎng)絡(luò)變量,通過不同節(jié)點(diǎn)、相同類型的網(wǎng)絡(luò)變量的互聯(lián), 即可實(shí)現(xiàn)LON 節(jié)點(diǎn)之間的數(shù)據(jù)傳送。另外,還外擴(kuò)SRAM儲(chǔ)存器IS61C256AH-15N和Flash存儲(chǔ)器AT29C512,讓用戶能編制使用較大的程序。
          2 軟件設(shè)計(jì)
          2.1 系統(tǒng)的分層結(jié)構(gòu)

            整個(gè)系統(tǒng)采用分層方式完成各協(xié)議間的通信。系統(tǒng)分為硬件驅(qū)動(dòng)層、協(xié)議層及其應(yīng)用層,如圖2所示。


            由于下層模塊只向上層提供一個(gè)軟件接口,屏蔽了下層的具體實(shí)現(xiàn)細(xì)節(jié)。上層軟件只有通過該接口才能與下層軟件發(fā)生聯(lián)系,這樣就保證了各層之間的獨(dú)立性。系統(tǒng)根據(jù)硬件接口、總線協(xié)議的不同,分為三個(gè)大的分層功能模塊,它們分別是LonWorks模塊、PPI模塊、 CANOPEN模塊。這些模塊又各自提供了硬件接收緩沖區(qū)、硬件發(fā)送緩沖區(qū)、協(xié)議接收緩沖區(qū)、協(xié)議發(fā)送緩沖區(qū)[4~5]。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();