CAN總線PC適配卡設(shè)計(jì)
PCI9052提供了5個(gè)局部地址空間,可以選用其中的一個(gè)作為SJA1000的地址空間,分配32個(gè)8位地址空間。同時(shí)設(shè)置相應(yīng)的初始化, PCI配置寄存器中的寄存器PCIBAR2設(shè)置為0XFFFFFFE0,向系統(tǒng)請(qǐng)求分配內(nèi)存的數(shù)量為32,類型為不可預(yù)讀,其它寄存器的值可設(shè)置為0。設(shè)置局部地址空間的范圍為0X00000000~0X00000020。對(duì)中斷的配置是把PCI中斷請(qǐng)求線分配到系統(tǒng)的某一ISA 中斷請(qǐng)求(IRQ)線上。在本控制卡中利用一塊串行EEPROM(93C46B)存放控制卡的PCI配置信息。上電后訪問93C46B,實(shí)現(xiàn)本控制卡的自動(dòng)配置。
圖1 總線接口原理圖
接口的軟件設(shè)計(jì)
軟件的設(shè)計(jì)包括PCI驅(qū)動(dòng)程序的設(shè)計(jì)和COM組件的設(shè)計(jì)。由于PC I設(shè)備的中斷、I/O端口、映射內(nèi)存等資源都是動(dòng)態(tài)分配的,必須編寫驅(qū)動(dòng)程序管理硬件,才能供用戶編程使用。CAN卡驅(qū)動(dòng)程序的開發(fā)工具采用WINDRIVER。由于CAN卡上沒有微控制器,因此對(duì)總線端口的所有操作都是由驅(qū)動(dòng)程序來完成的。這不僅可以由計(jì)算機(jī)來實(shí)現(xiàn)復(fù)雜的功能,例如,錯(cuò)誤檢測、斷點(diǎn)續(xù)傳等,同時(shí)節(jié)省了硬件,而且有利于卡的升級(jí)――只要更換驅(qū)動(dòng)程序即可。驅(qū)動(dòng)程序的功能主要是配置SJA1000的接口、收發(fā)CAN總線上的數(shù)據(jù)、對(duì)總線進(jìn)行實(shí)時(shí)監(jiān)測、接收用戶程序的收發(fā)命令。收發(fā)數(shù)據(jù)和CAN總線錯(cuò)誤均采用中斷處理,驅(qū)動(dòng)程序可以快速響應(yīng),通過事件(Event)內(nèi)核對(duì)象直接通知給用戶程序。CAN總線通信適配器的初始化是CAN總線設(shè)計(jì)的重要環(huán)節(jié),也是設(shè)計(jì)的難點(diǎn)。在其初始化過程中需要設(shè)置的參數(shù)有時(shí)鐘、總線配置、標(biāo)志標(biāo)識(shí)符屏蔽段、擴(kuò)展標(biāo)識(shí)符屏蔽段、信息塊、定時(shí)器0、定時(shí)器1、信息塊的控制段、信息塊的工作方式等。CAN總線適配器簡化流程圖如圖2所示。
圖 2 CAN總線適配器簡化流程圖本文引用地址:http://www.ex-cimer.com/article/188623.htm
結(jié) 論
本文設(shè)計(jì)的CAN總線適配器結(jié)構(gòu)簡單,可用于分布的現(xiàn)場總線控制系統(tǒng)。在WIN2000下經(jīng)過長時(shí)間的運(yùn)行測試,運(yùn)行穩(wěn)定可靠。它可以適應(yīng)不同的傳輸速率和距離,有效保證了工業(yè)過程監(jiān)控的實(shí)時(shí)性,同時(shí)也減輕了上位機(jī)的工作負(fù)擔(dān),滿足不同的用戶要求。在不同柵偏壓和分布參數(shù)條件下為芯片ESD保護(hù)的SNTSCR的I-V特性在CMOS工藝中已經(jīng)詳細(xì)講述過。SNTSCR可以在小區(qū)域內(nèi)保持高的ESD電平對(duì)于現(xiàn)代高集成科學(xué)很有吸引力。不采用厚柵氧化層,一般小于0.25μmCMOS工藝中, SNTSCR在有效保護(hù)混合電壓接口電路免于ESD破壞時(shí)充分兼容。
評(píng)論