音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)

ATmega8515

ATmega8515 的PDF資料

下載
,2110785K
其他型號

ATmega8515的供應(yīng)商:
聯(lián)系人:朱先生/李小姐
電話:0755-83325286/0755-83326422
聯(lián)系人:朱先生/周艷麗
電話:0755-83266687/0755-83265028
聯(lián)系人:朱小姐/銷售部
電話:0755-83263902/0755-83263921
聯(lián)系人:陳小姐/蔡小姐/陳小姐/安娜
電話:0755-82535261/0755-83062789//
>>更多供應(yīng)商

基于ATmega8515的USB-CAN適配器的實現(xiàn)

查看最近90天中添加的最新產(chǎn)品 最新電子元器件資料免費(fèi)下載 派睿電子TI有獎問答 - 送3D汽車鼠標(biāo) IR推出采用焊前金屬的汽車級絕緣柵雙極晶體管 全球電子連接器生產(chǎn)商—samtec 最新斷路器保護(hù)套
  摘要: 該文通過分析目前PC機(jī)和CAN總線之間通信的“瓶頸”問題,從通信的實際效率角度出發(fā),設(shè)計了基于微控制器ATmega8515的通用串口總線到控制器局域網(wǎng)總線的適配器. 詳細(xì)介紹了ATmega8515、USBN9603、SJA1000 的性能特點(diǎn)及其在USB-CAN適配器電路中的作用;重點(diǎn)論述了乒乓緩存法在適配器的固件編程上的運(yùn)用;并介紹了適配器驅(qū)動程序的編程和實際應(yīng)用情況.

  關(guān)鍵詞: 通用串口總線接口;控制器局域網(wǎng)總線;乒乓緩存法;固件;驅(qū)動程序

  CAN(Controller Area Network)總線作為一種多主機(jī)局部網(wǎng)現(xiàn)場總線,由于其組網(wǎng)的靈活性和便捷性、通信的高效性和可靠性以及低廉的成本,在工廠的分散控制領(lǐng)域受到了廣泛的應(yīng)用. 現(xiàn)在的工廠自動化控制,既需要“分散控制”,更需要有效的“集中管理”,以保障生產(chǎn)的安全和效率,而聯(lián)絡(luò)各種設(shè)備的現(xiàn)場總線和對設(shè)備進(jìn)行監(jiān)控的工作站(通常為工業(yè)PC機(jī)) 之間的通信成為一個關(guān)鍵的咽喉. 以往的監(jiān)控站和現(xiàn)場總線之間的通信大多采用兩種方式:一是設(shè)計專用的通信卡和現(xiàn)場總線進(jìn)行通信;二是通過PC機(jī)的RS-232C標(biāo)準(zhǔn)接口和現(xiàn)場總線進(jìn)行接口.使用專用的通信卡對于現(xiàn)在的小型化控制設(shè)備已不太方便和實用,而以最高波特率僅為38. 4kb/s 的RS-232C標(biāo)準(zhǔn)接口和最高波特率達(dá)1 Mb/s的CAN總線進(jìn)行接口,無疑會造成CAN總線和監(jiān)控站之間的通信“瓶頸”問題.

  可見,包括RS-232 在內(nèi)的接口已經(jīng)無法滿足PC機(jī)與外部設(shè)備之間不斷提高的速度以及穩(wěn)定性、易用性等方面的要求,并給工程技術(shù)人員的設(shè)計和用戶的運(yùn)用帶來諸多不便. USB(通用串行總線) 的出現(xiàn)解決了上述問題. USB以其優(yōu)越的易用性、穩(wěn)定性、兼容性、擴(kuò)展性、完備性、網(wǎng)絡(luò)性和低功耗的特點(diǎn)得到了廣泛的歡迎和應(yīng)用,目前的PC機(jī)無論是臺式還是便攜式,均帶有 USB插口,并且在最新發(fā)布的USB2. 0 版本中,USB 的帶寬已經(jīng)提升到了480Mb/s. 基于上述原因,作者利用Atmel公司最新推出的RISC架構(gòu)的微控器ATmega8515 , 設(shè)計了一種USB總線到CAN總線的專用適配器來對CAN 總線上的設(shè)備進(jìn)行監(jiān)控. 用USB和CAN總線進(jìn)行對接,解決了CAN總線和PC機(jī)間的通信“瓶頸”問題,提高了通信速度及效率,同時又達(dá)到了穩(wěn)定、易用的目的.

1  USB-CAN適配器的硬件設(shè)計

  本文所設(shè)計的USB-CAN適配器的主要特點(diǎn)是:(1) PC機(jī)和CAN總線之間數(shù)據(jù)傳輸波特率可以達(dá)到CAN總線1 Mb/s 的最高傳輸效率; (2) PC機(jī)和CAN總線之間數(shù)據(jù)傳輸可靠性高,其硬件系統(tǒng)電路如圖1 所示,其中CAN 總線的控制器選用Philips公司的獨(dú)立CAN總線控制器SJA1000 ,USB總線控制器選擇全速器件USBN9603 ,兩個總線控制器之間的協(xié)調(diào)處理器采用高性能的AVR 單片機(jī)ATmega8515,從而保障了通信速率;CAN 總線控制器和CAN 總線進(jìn)行光電隔離,采用DC/DC 電源變換器件給光電隔離器件及其后端器件供電,徹底隔離CAN 總線和PC機(jī)之間的電氣干擾,保障了PC機(jī)的安全性.

圖1  USB-CAN適配器電氣原理圖

1. 1  外部微控制器
  獨(dú)立CAN總線控制器SJA1000 和全速USB總線節(jié)點(diǎn)控制器USBN9603必須有外部微控制器進(jìn)行控制才能工作. 設(shè)計中采用Atmel公司最新推出的高性能、低功耗的8 位AVR微控制器ATmega8515 ,給USB-CAN適配器帶來諸多優(yōu)點(diǎn),并且提高了其性價比.

  ATmega8515具有低功耗特點(diǎn),供電電壓在4.5 ~5.5V DC ,其引腳Vcc 和GND之間最高電流為20mA. 而USB口電源為+ 5V DC,最大可提供500mA電流,故在適配器的電路設(shè)計中利用USB口提供的電源直接供電,免去了電源電路,使電路更為簡潔.

  ATmega8515 是RISC架構(gòu),有多達(dá)130 條功能強(qiáng)大的指令(大部分只用一個時鐘周期執(zhí)行) ,32×8通用工作寄存器,完全靜態(tài)運(yùn)作,在16MHz 的晶振下運(yùn)行速度可以達(dá)到16MIPS ,片上2周期的乘法器,其運(yùn)算速度是目前常用的8051單片機(jī)的10多倍,用它可以大大減少USB總線控制器和CAN總線控制器之間協(xié)調(diào)處理的時間,提高了USB-CAN適配器的實際通信速率.

  微控制器具有非易失性的程序和數(shù)據(jù)存儲器,8K字節(jié)的在線可編程Flash;可選駐留代碼區(qū)帶有獨(dú)立的鎖存位,通過片上駐留程序可以在線編程實現(xiàn)真正的Read-While-Write 操作;512字節(jié)的EEPROM,可進(jìn)行10 萬次擦寫,使USB-CAN 適配器的重要設(shè)置參數(shù)在掉電情況下仍能保存;512 字節(jié)的SRAM,可選用對AVR 微控制器進(jìn)行C 或C + + 編程的編譯器, 為開發(fā)比較大的程序帶來了方便( 例如AT90S1200 沒有RAM空間來建立堆棧,只能運(yùn)用匯編器) ;帶有軟件加密位;而且微控制器的外圍器件中有2 個定時P計數(shù)器,具有獨(dú)立的預(yù)分頻、比較模式及捕捉模式;3 個PWM通道;可編程串行USART;主P從SPI 串行接口,如圖1 中J2 和SPI 的MISO、MOSI、SCK相接,J2 接在串行下載線ISP 上可在線編程;具有獨(dú)立片上振蕩器的可編程看門狗計時器,這些給USB-CAN 適配器控制軟件提供了充足的存儲、開發(fā)空間和安全性.

  ATmega8515可以擴(kuò)展高達(dá)64K字節(jié)的外部程序存儲器,帶有ALE (即外部數(shù)據(jù)存儲器地址鎖存使能) 引腳,可以很方便地與SJA1000 和USBN9603引腳相連,這是除了AT90S4414/8815 外其它AVR 微處理器所沒有的. 如圖1 所示,SJA1000 在Meag8515 的空間地址為0x7F00H ~ 0x7F7FH , USBN9603 在Meag8515 的空間地址為0xBF00H~0xBFFFH.

1. 2  USB總線控制器
  USB -CAN適配器中的USB 總線控制器USBN9603是全速USB 總線節(jié)點(diǎn)控制器,傳輸數(shù)據(jù)波特率最高可達(dá)12Mb/s. USBN9603內(nèi)部集成收發(fā)器,通過18~27Ω的終端電阻與USB 電纜連接,如圖1中R7、R8 ;片內(nèi)集成了倍頻電路PLL ,可降低EMI ;并具有可編程時鐘輸出功能,如圖1 中U2 的CLKOUT引腳,在加電復(fù)位狀態(tài)下,默認(rèn)頻率輸出為4 MHz ,通過微處理器編程設(shè)置,其輸出頻率為frequency = 48 MHz/(CLKDIV + 1) ,其中CLKDIV 為0~15 之間的整數(shù),當(dāng)CLKDIV = 2時,可以為ATmega8515 提供16MHz 時鐘源,簡化了微處理器外圍電路;USBN9603 內(nèi)部集成了1個3. 3V 的調(diào)節(jié)器,通過1 個1. 5 kΩ的上拉電阻(如圖1中R1) 連接到USB 的D + 數(shù)據(jù)線上,可以使USB 主控制器識別出有1 個USB 全速設(shè)備正在連接.

  USBN9603 有7 個基于FIFO 的端點(diǎn):1 個必需的雙向控制端點(diǎn)EPC0 (8 字節(jié)緩存), 3 個發(fā)送端點(diǎn)EPC1、EPC3 和EPC5 (每個64 字節(jié)緩存) ,3 個接端點(diǎn)EPC2、EPC4 和EPC6 (每個64 字節(jié)緩存) . 充分利用USBN9603 的FIFO ,可以使ATmega8515 微處理器和USBN9603 控制器并行運(yùn)行,大大提高了適配器的運(yùn)行效率.

  USBN9603 的MODE0、MODE1 和ATmega8515 的2 個引腳相連,通過控制2 個引腳的電平,可以選擇USBN9603 和微處理器之間的接口方式(如表1 所示) .

表1  USBN9603 接口方式

  USBN9603 支持DMA ,圖1 中ATmega8515 通過控制BACK為低電平來使能或高電平禁止DMA. 此外,USBN9603 的中斷輸出INTR 接到ATmega8515 的INTR0 上,使ATmega8515 能夠?qū)SBN9603進(jìn)行及時的狀態(tài)診斷和事件處理.

1. 3  CAN總線控制器
  USB -CAN適配器中的SJA1000是工業(yè)自動控制領(lǐng)域中獨(dú)立的CAN總線控制器, 是PhilipsSemiconductors公司繼PCA82C200的下一代產(chǎn)品,在PCA82C200 的BasicCAN模式基礎(chǔ)上, 增加了符合CAN2.0 協(xié)議規(guī)定的PeliCAN 模式, 因此它和PCA82C200 在電氣上是兼容的;支持11 位標(biāo)識符ID和29 位標(biāo)識符ID ;在最高達(dá)24MHz 的晶振下,通信速率達(dá)1 Mb/s ;發(fā)送緩存13 個字節(jié),接收緩存有64個字節(jié),采用FIFO 模式,減少了接收等待時間,提高了實際通信效率.

  USB-CAN 適配器數(shù)據(jù)傳輸處理框圖如圖2 所示,CAN 總線控制器的數(shù)據(jù)地址復(fù)用口和ATmega8515的PA 口相連,它的中斷使能端和ATmega8515 的INT1引腳相連,使得ATmega8515能夠?qū)JA1000進(jìn)行及時的狀態(tài)診斷和事件處理;串行數(shù)據(jù)傳輸端通過光電隔離器件6N137和CAN控制器接口器件PCA82C250相連,使USB-CAN適配器的穩(wěn)定性及抗干擾能力大為提高.

圖2  USB2CAN適配器數(shù)據(jù)傳輸處理框圖

2  USB-CAN適配器的軟件設(shè)計

  USB-CAN 適配器軟件包括兩部分:ATmega8515中的固件和PC機(jī)內(nèi)USB2CAN適配器的驅(qū)動軟件.

2. 1  USB-CAN適配器固件編程
  良好的開發(fā)環(huán)境是開發(fā)單片機(jī)軟件質(zhì)量和速度的保證.USB2CAN 適配器采用GNU AVR 的最新版本W(wǎng)inAVR 編程,它能夠?qū)λ蠥VR 單片機(jī)用C 或C + + 語言進(jìn)行編程,且能在WIN2000 下運(yùn)行.

  USB-CAN 適配器固件設(shè)計成完全的中斷驅(qū)動,當(dāng)ATmega8515處理前臺任務(wù)時,USB 和CAN 的傳輸可以在后臺同時進(jìn)行,大大提高了實際傳輸效率,編程和調(diào)試亦很方便. 后臺的中斷處理子程序通過設(shè)置事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實現(xiàn)和前臺主程序之間的數(shù)據(jù)交換(如圖2 所示) .當(dāng)ATmega8515檢測到CAN 控制器的狀態(tài)寄存器而得知接收緩沖CANRX-Buffer有數(shù)據(jù),就會把數(shù)據(jù)傳到USB 控制器空閑發(fā)送緩沖區(qū)TXFIFO-1或TXFIFO-2中; 同樣, 當(dāng)USB控制器的接收緩沖區(qū)RXFIFO-1或RXFIFO-2充滿數(shù)據(jù)時,ATmega8515就會把RXFIFO-1或RXFIFO-2的數(shù)據(jù)讀到內(nèi)部一個連續(xù)的RAM空間,當(dāng)CAN總線控制器發(fā)送緩沖區(qū)CAN-TX-Buffer 為空時,再把數(shù)據(jù)從RAM傳到CAN-TX-Buffer.

  USB -CAN適配器固件設(shè)計中采用乒乓緩存法提高實際傳輸速率. USBN9603有7個端點(diǎn), 通常FIFO內(nèi)的數(shù)據(jù)進(jìn)行傳送或接收時每個端點(diǎn)對應(yīng)一個管道,但是,兩個同方向傳輸數(shù)據(jù)的端點(diǎn)也可以利用一個管道,這樣可以有效地提高數(shù)據(jù)的傳輸率,因為當(dāng)?shù)谝粋端點(diǎn)的FIFO傳輸數(shù)據(jù)時,微處理器可以對第二個端點(diǎn)的FIFO進(jìn)行數(shù)據(jù)讀或?qū)?反之亦然.

  USBN9603 在進(jìn)行批量傳輸時,其實際傳輸率大約是512kb/s ,這往往是由于主機(jī)的控制器最大每幀數(shù)據(jù)包數(shù)量限制造成的,而并非USBN9603本身傳輸性能. 其它傳輸方式,如中斷傳輸、同步傳輸、控制傳輸?shù)淖罡邆鬏斔俾蕿?.5Mb/s. 采用乒乓緩存法后,可使傳輸速率提高一倍,從而使傳輸速率為1Mb/s 的CAN總線控制器沒有等待接收數(shù)據(jù)和發(fā)送數(shù)據(jù)空間的情況,解決了數(shù)據(jù)傳輸中的“瓶頸”問題.在USB-CAN 適配器中,端點(diǎn)EP1 (TXFIFO-1) 和EP3 (TXFIFO-2)發(fā)送數(shù)據(jù)到主機(jī),EP2(RXFIFO-1) 和EP4(RXFIFO-2)從主機(jī)接收數(shù)據(jù)(如圖2 所示) ,其FIFO中的數(shù)據(jù)長度都是64字節(jié). 在主機(jī)進(jìn)行枚舉過程中,當(dāng)節(jié)點(diǎn)接收到配置設(shè)備請求,固件程序就可以把EP1/EP3和EP2/EP4分別分配到同一個端點(diǎn)地址.USBN9603 內(nèi)置有一個優(yōu)先級表,如果多個端點(diǎn)編程指定為同一個端點(diǎn)號,具有較低號的端點(diǎn)(利用TOGGL 標(biāo)志區(qū)分高低)首先得到響應(yīng)和數(shù)據(jù).

2. 1. 1  數(shù)據(jù)上傳
  當(dāng)主機(jī)發(fā)送一個IN 令牌給USB-CAN 適配器,適配器就開始向PC機(jī)發(fā)送數(shù)據(jù). 圖3 為數(shù)據(jù)上傳的流程圖. 通過兩個標(biāo)志UPDATE1 和UPDATE2 把主程序和Tx 中斷子程序緊密聯(lián)系起來,體現(xiàn)了前臺后臺程序設(shè)計思想. 當(dāng)UPDATE1 清0 ,上傳數(shù)據(jù)完畢;當(dāng)置1 時,開始傳輸下一批數(shù)據(jù). 圖4為EP1的Tx中斷子程序流程圖,UPDATE1 在該中斷子程序置1.UPDATE2的運(yùn)行和UPDATE1相似.

圖3  主程序處理上傳送FIFO 數(shù)據(jù)流程

圖4  EP1 的Tx 中斷子程序流程


2. 1. 2  數(shù)據(jù)下傳
  當(dāng)主機(jī)發(fā)送一個OUT令牌給USB2CAN適配器,適配器就開始接收PC發(fā)送的數(shù)據(jù),并將其暫存在ATmega8515 的RAM中,然后傳到CAN總線控制器的數(shù)據(jù)發(fā)送緩沖區(qū)CAN.TX.Buffer. 圖5 為EP2的Rx中斷子程序流程,顯示了PC的數(shù)據(jù)如何傳到CAN總線的發(fā)送緩沖區(qū). 端點(diǎn)EP4 的Rx 中斷子程序流程和EP2的相似. 


圖5  EP2 的Rx 中斷子程序流程

2. 2  USB-CAN適配器驅(qū)動程序編程
  USB-CAN適配器設(shè)備驅(qū)動程序采用Win2000DDK編寫,在VC6.0+ +環(huán)境中編譯. 驅(qū)動程序運(yùn)行于內(nèi)核模式,其程序組織主要是按功能進(jìn)行劃分,而不是一種層次結(jié)構(gòu). 即插即用例程和電源管理例程完全按照USB 標(biāo)準(zhǔn)總線驅(qū)動程序參考編寫.一個驅(qū)動程序可以被多個類似的硬件使用,但驅(qū)動程序的某些全局初始化操作只能在第一次被裝入時執(zhí)行一次. 而DriverEntry例程就是用于這個目的,它是內(nèi)核模式驅(qū)動程序主入口點(diǎn). I/O管理器按下面方式調(diào)用該例程:
extern“C”NTSTATUS DriverEntry ( IN PDRIVER OBJ ECT  DriverObject , INPUNICODE STRING  RegistryPath)
DriverEntry 的第一個參數(shù)是一個指針,指向一個剛被創(chuàng)建的驅(qū)動程序?qū)ο?
DriverEntry 的第二個參數(shù)是設(shè)備服務(wù)鍵的鍵名.

本設(shè)計中該例程的各個域設(shè)置如下:
DriverObject - > DriverUnload =
  UsbCan- DriverUnload ;
DriverObject - > DriverExtension - > AddDevice =
  UsbCan- AddDevice ;
DriverObject - >MajorFunction[ IRP- MJ - CREATE] =
  UsbCan- DispatchCreate ;
DriverObject - >MajorFunction[ IRP- MJ - CLOSE] =
  UsbCan- DispatchClose ;
DriverObject - >MajorFunction[ IRP- MJ - READ] =
   
  UsbCan- DispatchRead ;
DriverObject - >MajorFunction[ IRP- MJ - WRITE] =
  UsbCan- DispatchWrite ;
DriverObject - > MajorFunction[ IRP- MJ - INTERNAL - DEVICECONTROL
] =
  UsbCan- DispatchInternalControl ;
DriverObject - >MajorFunction[ IRP- MJ - POWER] =
  UsbCan- DispatchPower ;
DriverObject - >MajorFunction[ IRP- MJ - PNP] =
  UsbCan- DispatchPnp ;
DriverObject - > MajorFunction [ IRP- MJ - DEVICE- CONTROL ]
=
  UsbCan- DispatchControl.

3  USB-CAN適配器的應(yīng)用

  本文設(shè)計的USB-CAN適配器在分布式PLC 控制系統(tǒng)中的應(yīng)用如圖6 所示,筆記本電腦通過該適配器和PLC控制系統(tǒng)的CAN總線進(jìn)行連接,實現(xiàn)了一個筆記本對多個PLC進(jìn)行程序下載及對多個PLC運(yùn)行狀況進(jìn)行監(jiān)視,特別是在上位機(jī)只進(jìn)行監(jiān)視的情況下,可以進(jìn)行熱插拔而不影響系統(tǒng)的運(yùn)行,給系統(tǒng)調(diào)試帶來極大的方便. 經(jīng)USB測試軟件測試,其最高傳輸速率在40m內(nèi)達(dá)到了1Mb/s.



  來源:小草
收藏此頁】【關(guān)閉】【返回】【打印】【推薦
分享: QQ空間 人人網(wǎng) 開心網(wǎng) 騰訊微博 新浪微博 搜狐微博 網(wǎng)易微博
本頁面信息由維庫用戶提供,如有侵犯您的知識產(chǎn)權(quán),請致電本站,本站核實后將迅速刪除!

熱門詞條:晶體管特性圖示儀高亮液晶廣告機(jī)LTC3883控制電纜雙金屬溫度計閘門開度傳感器無感電阻高低溫交變濕熱試驗箱AFS光譜儀黑盒測試更多>>
相關(guān)文章
  • 更多"ATmega8515"相關(guān)文章
  • 關(guān)于我們 | 服務(wù)項目 | 付款方式 | 聯(lián)系我們 | 友情鏈接 | 投訴 建議 合作 | 網(wǎng)站地圖 | 加入收藏 | 公司庫
    © 2026 維庫電子市場網(wǎng)(m.58mhw.cn) 版權(quán)所有 經(jīng)營許可證編號:浙B2-20050339 版權(quán)聲明
    二十一年專注打造優(yōu)質(zhì)電子元器件采購網(wǎng)、IC交易平臺。