USB-CAN-RS232總線轉(zhuǎn)換電路設(shè)計(jì)及實(shí)現(xiàn)
1 引言
隨著電子設(shè)備的大量出現(xiàn)及針對(duì)各種控制系統(tǒng)的實(shí)際需求,各種通信網(wǎng)絡(luò)相繼產(chǎn)生。由于它們的總線結(jié)構(gòu),通信協(xié)議及傳輸特點(diǎn)各不相同,給不同設(shè)備之間的連接帶來很多麻煩,因而急需各種總線之間的轉(zhuǎn)換裝置。目前較流行的現(xiàn)場(chǎng)通信網(wǎng)絡(luò)有rs-232,rs422/485、hart、profield、dupline、can和lonworks等,本文闡述了一種usb-can-rs232三總線轉(zhuǎn)換裝置,電路設(shè)計(jì)簡(jiǎn)單新穎,并并且攜帶方便,實(shí)用性很強(qiáng)。
2 各種總線的特點(diǎn)
2.1 can(controller area netwrok)
can是控制器局域網(wǎng)絡(luò),屬于工業(yè)現(xiàn)場(chǎng)總線的范疇。與一般的通信總線相比,can總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,具有較高的通信速率(最高達(dá)1mb/s),較遠(yuǎn)的通信距離(最遠(yuǎn)達(dá)10km),良好的抗電磁干擾能力,而且采用總線仲裁技術(shù),通信方式靈活,越來越受到人們的重視,它在汽車領(lǐng)域的應(yīng)用最為廣泛,一些著名的汽車制造廠商如benz(奔馳)、bmw(寶馬)、porsche(保時(shí)捷)、rolls-royce(勞斯萊斯)和jaguar(美洲豹)等都采用can總線實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。
2.2 usb(universal serial bus)
usb即"通用串行總線"是一種應(yīng)用在pc中的表型總線,由intel、microsoft、nec等公司共同提出,他是一種新型的外接串聯(lián)口,提出該規(guī)格的廠商希望用usb取代現(xiàn)有的外接設(shè)備接口,它還具備連接單一化、軟件自動(dòng)偵測(cè)以及熱插拔(即插即用)的功能,usb具有以下特點(diǎn):
1)數(shù)據(jù)傳輸速率高。usb高速:480mb/s;usb全速:12mb/s;usb低速:1.5mb/s。
2)數(shù)據(jù)傳輸可靠。usb事務(wù)處理包括錯(cuò)誤檢測(cè)機(jī)制,可以確保數(shù)據(jù)無錯(cuò)誤發(fā)送,在發(fā)生錯(cuò)誤時(shí),事務(wù)處理可以重新進(jìn)行。
3)同時(shí)掛接多個(gè)usb設(shè)備,每個(gè)usb總線支持127個(gè)設(shè)備的連接。
4)usb接口能為設(shè)備供電。當(dāng)外界電源要求電壓為5v且電流小于500ma時(shí),可以直接從usb總線獲取電源,這樣,usb設(shè)備無需專用電源線,從而降低了設(shè)備成本。
5)支持熱拔。usb實(shí)現(xiàn)了真正的"即插即用"功能,設(shè)備連接后由usb自檢測(cè),并且由軟件自動(dòng)配置,完成后立刻就能使用,不需要用戶進(jìn)行干涉。
3 器件特性
3.1 sja1000型can總線控制器
sja1000是philips公司早期pca82c200型can控制器的代替品,功能更強(qiáng),具有如下特點(diǎn):
完成兼容pca82c200及其工作模式即basiccan模式;
具有擴(kuò)展的接收緩沖器,64字節(jié)的fifo結(jié)構(gòu);
支持can2.0b;
支持11位和29位識(shí)別碼;
位速率可達(dá)1mbit/s;
時(shí)鐘頻率高達(dá)24m赫茲;
支持與不同微處理器的接口;
可編程的can輸出驅(qū)動(dòng)配置;
工作溫度范圍寬(-40攝氏度~+125攝氏度)。
sja1000的引腳排列如圖1所示,其內(nèi)部主要由接口管理邏輯iml、信息緩沖器(含發(fā)送緩沖器txb和接收緩沖器rxfifo)、位流處理器bsp、接收過濾器asp、位時(shí)序處理邏輯btl、錯(cuò)誤管理邏輯eml、內(nèi)部振蕩器及復(fù)位電路等構(gòu)成,iml接收來自cpu的命令,控制can寄存器的尋址并向控制提供中斷信息及狀態(tài)信息,cpu的控制經(jīng)iml把要發(fā)送的數(shù)據(jù)寫入txb,txb中的數(shù)據(jù)由bsp處理后經(jīng)btl輸出到can
bus。btl始終監(jiān)視can bus,當(dāng)檢測(cè)到有效的信息頭"隱性電平-控制電平"的轉(zhuǎn)換時(shí)啟動(dòng)接收過程,接收的信息首先要由位流處理器dsp處理,并由asp過濾,只有當(dāng)接收的信息的識(shí)別碼與asp檢驗(yàn)相符時(shí),接收信息才最終被寫入rxb或rxfifo中,rxfifo最多可以緩存64字節(jié)的數(shù)據(jù),該數(shù)據(jù)可被cpu讀取,eml負(fù)責(zé)傳遞層中調(diào)制器的錯(cuò)誤管制,它接收bsp的出錯(cuò)報(bào)告,促使dsp和iml進(jìn)行錯(cuò)誤統(tǒng)計(jì)。
3.2 usbn9603型usb接口電路
usbn9603的引腳排列如圖2所示,它是標(biāo)準(zhǔn)的usb接口電路,符合usb1.0和usb1.1協(xié)議。usbn9603集成了3.3v的穩(wěn)定電源、串行接口引擎sie、多個(gè)usb端點(diǎn)緩沖fifo、1個(gè)8位并行微處理器接口和1個(gè)時(shí)鐘源。
usbn9603的性能如下:低電流,低功能,外接24m赫茲晶體振蕩器。
增強(qiáng)型的dma機(jī)制支持?jǐn)?shù)據(jù)快速自動(dòng)傳輸;
集成了64b的雙向fifo存儲(chǔ)器;
外處理器接口模式可由軟件控制;
支持24m赫茲晶體振蕩器和內(nèi)部48m赫茲時(shí)鐘產(chǎn)生電路;
時(shí)鐘頻率可由軟件控制;
8位并行接口有兩種可選模式,包括地址/數(shù)據(jù)復(fù)用型和非地址/數(shù)據(jù)復(fù)用型;
接收和發(fā)送端的緩沖為64b;
4 硬件設(shè)計(jì)
電路中使用的微處理器是atmel公司生產(chǎn)的at89c51型單片機(jī),硬件連接如圖3所示,usbn9603的clkout與at89c51的xtal1相連,usbn9603的時(shí)鐘輸出為at89c51提供時(shí)鐘輸入。at89c51通過并行地址/數(shù)據(jù)復(fù)用的方式訪問usbn9603,at89c51的p2.0通過74hc14反向后片選usbn9603,其地址為0x00-0x1ff。選用sja1000作為can微控制器,sja1000集成了can協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的幀處理,其地址為0x000-0x0ff。at82c50作為can控制器和物理總線之間的接口,用于提供總線的差動(dòng)發(fā)送能力和can控制器差動(dòng)接收能力。通過at82c50的引腳3可選擇3種不同的工作方式(高速、斜率控制和待機(jī))。該引腳接地為高速方式,高速光耦隔離用6n137實(shí)現(xiàn),其作用是防止串入信號(hào)的干擾。max232用來完成rs232電平到微控制器接口電路的ttl電平轉(zhuǎn)換,同時(shí)還可進(jìn)行一些總線端口的工作參數(shù)設(shè)置。
5 軟件設(shè)計(jì)
在微控制器的控制下,各總線之間進(jìn)行數(shù)據(jù)交換,微控制器先對(duì)各個(gè)總線工作參數(shù)進(jìn)行初始化,設(shè)置好時(shí)鐘、寄存器、波特率、并選擇合適的中斷方式,對(duì)于sja1000,主要指對(duì)控制寄存器cr、驗(yàn)收碼寄存器acr、驗(yàn)收屏蔽寄存器amr、時(shí)鐘分頻寄存器cdr、總線定時(shí)寄存器btr0、總線定時(shí)器brt1等的設(shè)置。usb的傳輸方式有4種:控制傳輸、塊傳輸、同步傳輸和中斷傳輸。本設(shè)計(jì)中使用了控制傳輸和塊傳輸。usbn9603的內(nèi)部寄存器和fifo緩沖區(qū)分別對(duì)每個(gè)端點(diǎn)進(jìn)行控制,當(dāng)接到主機(jī)法來的in標(biāo)記包時(shí),發(fā)送端點(diǎn)應(yīng)自動(dòng)向上發(fā)送數(shù)據(jù)。如果沒有數(shù)據(jù)發(fā)送,則回應(yīng)nak(negative
acknowledegment)握手包。其主程序流程如圖4所示。
在設(shè)計(jì)軟件時(shí),一定要正確選擇需要傳輸數(shù)據(jù)的2種總線,可以用軟件或硬件進(jìn)行選擇。
6 結(jié)束語
這種3總線轉(zhuǎn)換器可方便地實(shí)現(xiàn)不同端口設(shè)備之間的數(shù)據(jù)通信,usb-can的轉(zhuǎn)換速率可以達(dá)到1mb/s。如果現(xiàn)場(chǎng)條件要求較高且適應(yīng)性要求較強(qiáng),可采用雙cpu、加數(shù)據(jù)緩沖區(qū)ram等措施來完善電路。這樣無形中增加了硬件電路的復(fù)雜性和軟件設(shè)計(jì)的邏輯性。
評(píng)論