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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于VxWorks平臺的多串口卡通信設計

          基于VxWorks平臺的多串口卡通信設計

          作者: 時間:2011-12-04 來源:網絡 收藏

          操作系統是美國Wind River公司于1983年開發(fā)的一種嵌入式實時操作系統(RTOS),良好的持續(xù)發(fā)展能力、高性能的內核以及友好的用戶開發(fā)環(huán)境,使其在嵌入式實時操作系統領域居于領先地位,廣泛應用于現代的各種嵌入式計算機系統中,比如軍事指揮系統、武器控制系統或工業(yè)控制系統中。而在這些系統中,往往不是單個計算機的控制,而是多個計算機以及其他設備組成網絡共同完成控制作用,因此,對于每一個嵌入式計算機除了連接必需的外設之外,還需要考慮計算機之間的。計算機間常用的方式是利用串行口來實現的。本文在通信的實現過程中未采用常見的標準虛擬設備ttyDrv驅動方式,而是在用戶的驅動程序中直接對硬件進行初始化,以中斷方式進行通信。

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


          1、環(huán)境及配置

          VxWorks嵌入式開發(fā)采用圖1所示的主機一目標機方式。

          其他硬件與本文關系不大,這里主要介紹卡,該卡是DIAMOND SYSTEM公司生產的EMERALD-MM-8型8串口擴展卡(以下簡稱EMM8),是2片ST16C554芯片的8串口集成板卡,每一路串口均可單獨配置成符合RS-232C/RS-422A/RS-485協議規(guī)范,最高速率可達115.2kb/s。通用異步收發(fā)器(UART)ST16C554用來擴展4路串口通道。每路通道各有一組16B的收發(fā)FIFO和移位寄存器,用來緩沖數據和串并轉換。每個通道有12個8b內部寄存器,用來存放收發(fā)數據以及配置該串口的工作模式,需要在初始化時對各寄存器進行設置。本文根據工程的要求,將卡上的硬件跳線設好,如:各串口使用RS-232C協議,按照datasheet進行硬件跳線。其中J9的配置較為重要,如圖2所示。

          D、C、B、A 四位表示base address,從data sheet中查表可知其跳線情況,以本項目為例,base address為0x300,則D、C、B、A分別為out、out、in、in,為1100。

          2、3、4…15為該卡可用的中斷號,要使用哪個中斷就必須將其跳為in。本項目由于中斷資源不足,只能用一個中斷號即7號中斷,因此只將7設為in。

          CK為頻段范圍跳線,對ST16C554來說必須為in。

          另外,EMM8在系統啟動時會從板上的EEPROM 中讀取各個端口的基本配置信息,主要是端口映射地址及分配的中斷號,這些信息可以在啟動后編程修改,但一般是固定的,因此只要在EEPROM 中配置一次并保存即可。


          2、多串口驅動開發(fā)


          2.1 I/O系統與串口設備驅動層次結構

          I/O系統與串口設備驅動層次如圖3所示。

          圖3中最底層就是要編寫的驅動程序。在這里主要完成對具體硬件的各種操作,以及與上層的接口。硬件驅動層上面是ttyDrv和tyLib。這一層比較特殊,是Vxworks專門為串口設備準備的一個虛擬驅動庫,它把跟具體硬件無關的操作集成在了這一層中。這樣用戶只編寫與硬件有關的驅動和跟這一層的接口函數即可。從總的結構講,這2層都屬于設備驅動的范疇。再上一層是I/O系統層,Vxworks的I/O系統向上提供了7個基本的I/O接口,供應用程序調用;向下提供與各種設備驅動程序的接口。I/O系統把應用程序跟驅動程序有機地連接起來。最頂層就是用戶根據應用需要編寫的應用程序。ttyDrv是一個虛擬設備驅動,用于處理I/O系統與底層實際設備驅動程序(可以是用戶的驅動程序)之間的通信。使用ttyDrv控制串口是比較常見的串口驅動實現方式,實際上,直接對硬件進行初始化,以中斷方式進行串口通信也是可行的方式,且更加靠近底層,可以更自由、高效的控制串口。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();