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