国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

異構(gòu)CAN 總線節(jié)點(diǎn)通信系統(tǒng)設(shè)計(jì)

2022-08-15 06:36:08李樹(shù)鳳王志琳劉新月
關(guān)鍵詞:波特率收發(fā)器總線

郝 彬,李樹(shù)鳳,王志琳,劉新月

(1.天津職業(yè)技術(shù)師范大學(xué)電子工程學(xué)院,天津 300222;2.科信達(dá)通(天津) 科技發(fā)展有限公司,天津 300101)

CAN(controller area network)[1]總線獲得了業(yè)界的認(rèn)可,其應(yīng)用場(chǎng)景也從汽車(chē)領(lǐng)域[2-3]延伸至工業(yè)自動(dòng)化[4]、船舶、醫(yī)療設(shè)備[5]、工業(yè)設(shè)備[6-7]等領(lǐng)域,用途十分廣泛。在我國(guó)北方,大棚種植瓜果、蔬菜是廣大農(nóng)民發(fā)展多種經(jīng)營(yíng)、增加經(jīng)濟(jì)收入的重要手段。在大棚技術(shù)[8]管理方面涉及的內(nèi)容很多,主要有光照、溫度、病蟲(chóng)害、防霜凍等。在北方的冬季,氣溫較低,為了保持大棚內(nèi)的溫度,防止凍害,往往要在塑料薄膜上覆蓋一層或多層草苫,這樣雖可起到保溫的作用,但會(huì)影響光照作用。而有時(shí)雖然不需要覆蓋草苫,但是受到北方霧霾、陰雪天氣的影響,也會(huì)影響大棚內(nèi)作物的采光種植,所以為大棚內(nèi)植物提供充足的光照是一項(xiàng)重要的技術(shù)問(wèn)題。為實(shí)現(xiàn)大棚內(nèi)照明,目前大多采用LED 照明光源[9],在大棚內(nèi)進(jìn)行多點(diǎn)布設(shè)。針對(duì)各LED照明節(jié)點(diǎn),本文研究了基于CAN 總線互聯(lián)的多照明節(jié)點(diǎn)的連接和控制方式,并分析了采用不同控制芯片的CAN 照明節(jié)點(diǎn)的互聯(lián)問(wèn)題。

1 系統(tǒng)設(shè)計(jì)

CAN 總線的物理連接只需2 根線,常記為CAN_H和CAN_L,通過(guò)差分信號(hào)進(jìn)行傳輸。CAN 總線網(wǎng)絡(luò)是一種真正的多主機(jī)網(wǎng)絡(luò),其網(wǎng)絡(luò)拓?fù)淙鐖D1 所示。

圖1 CAN 通信系統(tǒng)拓?fù)鋱D

在總線處于空閑狀態(tài)時(shí),任何一個(gè)節(jié)點(diǎn)單元都可以申請(qǐng)成為主機(jī),向總線發(fā)送消息。最先訪問(wèn)總線的節(jié)點(diǎn)單元可以獲得總線的控制權(quán);多個(gè)節(jié)點(diǎn)單元同時(shí)嘗試獲取總線的控制權(quán)時(shí),將發(fā)生仲裁事件,只有優(yōu)先級(jí)高的節(jié)點(diǎn)單元能獲得總線的控制權(quán)。

CAN 總線的通信速率和總線長(zhǎng)度有關(guān),在總線長(zhǎng)度小于40 m 的場(chǎng)合中,數(shù)據(jù)傳輸速率可以達(dá)到1 Mbps,而即使總線長(zhǎng)度達(dá)到1 000 m,數(shù)據(jù)傳輸速度仍可達(dá)到50 kbps,明顯優(yōu)于RS232 和RS485 等通信方式。CAN 總線上的節(jié)點(diǎn)數(shù)理論上沒(méi)有上限,但在實(shí)際中受到總線上的時(shí)延以及電氣負(fù)載的限制,這種傳輸距離完全可以滿足大棚內(nèi)的布線要求。

由圖1 可知,每個(gè)通信節(jié)點(diǎn)由微控制器、CAN 控制器、CAN 收發(fā)器3 部分組成。在構(gòu)造CAN 總線通信節(jié)點(diǎn)時(shí),可以選擇不同廠家的微控制器、CAN 控制器和CAN 收發(fā)器。目前,市場(chǎng)上具有代表性的CAN 控制器有恩智浦公司的SJA1000,在CAN 收發(fā)器方面,有恩智浦公司的PCA82C250 和TJA1050。為提升產(chǎn)品的綜合性能,很多微控制器廠商提供集成了CAN 控制器的MCU 產(chǎn)品,如意法半導(dǎo)體(ST)公司的STM32F103系列的32 位微控制器,恩智浦公司的P87C591 系列的8 位單片機(jī)等。

在一個(gè)CAN 總線網(wǎng)絡(luò)中采用完全一致的CAN 節(jié)點(diǎn)設(shè)計(jì)無(wú)疑是最為方便的方案,但由于功能、成本或其他方面因素的考慮,在同一個(gè)CAN 總線網(wǎng)絡(luò)上,各CAN 節(jié)點(diǎn)會(huì)采用不同的實(shí)現(xiàn)方案。這時(shí)就必須解決異構(gòu)CAN 節(jié)點(diǎn)的互聯(lián)互通問(wèn)題。本文以照明控制應(yīng)用為案例,從實(shí)用角度出發(fā),闡述異構(gòu)CAN 節(jié)點(diǎn)間實(shí)現(xiàn)互聯(lián)互通時(shí)所涉及的主要技術(shù)問(wèn)題。

2 節(jié)點(diǎn)電路實(shí)現(xiàn)方式

在本文設(shè)計(jì)的照明控制系統(tǒng)中,CAN 網(wǎng)絡(luò)由一個(gè)主節(jié)點(diǎn)和多個(gè)從節(jié)點(diǎn)組成。主節(jié)點(diǎn)負(fù)責(zé)多點(diǎn)數(shù)據(jù)采集和信息顯示,采用意法半導(dǎo)體(ST)的32 位STM32F103作為控制器[10-11],STM32F103 微控制器內(nèi)置了bx(basic extended)CAN 控制器,集成度高。各從節(jié)點(diǎn)主要功能是負(fù)責(zé)區(qū)域內(nèi)的照度信號(hào)檢測(cè),以及控制一組LED 照明燈的光照強(qiáng)度調(diào)節(jié)。出于項(xiàng)目的繼承性和成本方面的考慮,各子節(jié)點(diǎn)采用宏晶科技(STC)的STC89C52RC的8 位51 單片機(jī)作為節(jié)點(diǎn)控制器,實(shí)現(xiàn)節(jié)點(diǎn)控制和CAN 通信功能。相應(yīng)的節(jié)點(diǎn)框圖如圖2 所示。

圖2 CAN 通信系統(tǒng)拓?fù)鋱D

2.1 STM32控制的CAN節(jié)點(diǎn)

在硬件上,STM32F103 內(nèi)部集成一個(gè)bxCAN 控制器。bxCAN 控制器支持2.0A 和2.0B 的CAN 協(xié)議,只需外接1 個(gè)CAN 收發(fā)器TJA1050,即可滿足CAN 通信的硬件要求。硬件電路如圖3 所示。

圖3 STM32F103 控制的CAN 節(jié)點(diǎn)電路圖

由圖3 可知,STM32F103 的bxCAN 協(xié)議控制器的發(fā)送引腳(CAN_TX)為PA12,接收引腳(CAN_RX)為PA11,與CAN 收發(fā)器TJA1050 對(duì)應(yīng)的串行數(shù)據(jù)輸出TXD 和串行數(shù)據(jù)輸入RXD 相連。TJA1050 通過(guò)其2 個(gè)有差動(dòng)接收和發(fā)送能力的總線終端CANH 和CANL 連接到CAN 總線網(wǎng)絡(luò)。

2.2 STC89C52RC控制的CAN節(jié)點(diǎn)

STC89C52RC 是一款功能單一的傳統(tǒng)8 位51單片機(jī),如要實(shí)現(xiàn)CAN 總線通信功能需外擴(kuò)獨(dú)立的CAN 總線控制器和收發(fā)器,如圖2 所示。在實(shí)際應(yīng)用中,CAN 控制器選用SJA1000[12],收發(fā)器采用PCA82C250,二者均為恩智浦公司的產(chǎn)品。SJA1000 是一款獨(dú)立的CAN 控制器,支持CAN2.0 協(xié)議的新特性。其地址/數(shù)據(jù)復(fù)用總線AD0-AD7 與STSTC89C52RC的P0 口相連,做為單片機(jī)的外部存儲(chǔ)器擴(kuò)展應(yīng)用。ALE、RD、WR 引腳與單片機(jī)的對(duì)應(yīng)引腳連接,控制讀寫(xiě)數(shù)據(jù)操作,完成數(shù)據(jù)和地址通信。片選端CS 連接到單片機(jī)的P2.0,片選信號(hào)低電平有效。復(fù)位端RST 由單片機(jī)的P2.3 控制。SJA1000 的16 腳MODE 端接高電平選擇INTEL 模式。SJA1000 的16 腳是中斷信號(hào)輸出,接到STSTC89C52RC 的INT1,使單片機(jī)以中斷方式接收CAN 總線的數(shù)據(jù)。XTAL1 和XTAL2 共2 個(gè)引腳接16 MHz 的晶體,為SJA1000 數(shù)據(jù)的發(fā)送以及校驗(yàn)等功能提供時(shí)鐘。

SJA1000 的TX0、RX0 連接到CAN 收發(fā)器PCA82-C250 的對(duì)應(yīng)引腳,數(shù)據(jù)幀就可以傳送到總線上。由于控制器和收發(fā)器都需要外擴(kuò),故與STM32 相比,STC89C52RC 實(shí)現(xiàn)的CAN 節(jié)點(diǎn)硬件電路要復(fù)雜一些。

3 節(jié)點(diǎn)波特率

在完成了硬件設(shè)計(jì)后,具體通信功能要依靠軟件來(lái)實(shí)現(xiàn)。同其他串行通信方式一樣,CAN 總線在通信時(shí),各節(jié)點(diǎn)要具有相同的波特率。

3.1 STM32控制的CAN節(jié)點(diǎn)波特率設(shè)置

CAN 總線的數(shù)據(jù)傳輸速率由波特率決定,它是指發(fā)送單元在非同步狀態(tài)下發(fā)送的每秒位數(shù),也稱為位速率。標(biāo)準(zhǔn)的CAN 協(xié)議的一個(gè)位可分為4 個(gè)段:同步段(SS)、傳播時(shí)間段(PTS)、相位緩沖段1(PBS1)和相位緩沖段2(PBS2)。而每個(gè)段又由若干個(gè)被稱為最小時(shí)間單位tq構(gòu)成。STM32 將傳播時(shí)間段和相位緩沖段1 合并為1 個(gè)PSB1。同步段的時(shí)長(zhǎng)為1 個(gè)tq,相位緩沖段1 和相位緩沖段2 的時(shí)長(zhǎng)為tq的整數(shù)倍。正常的位時(shí)間是上述3 段的時(shí)長(zhǎng)之和。STM32 的位時(shí)序如圖4所示。

圖4 bxCAN 的位時(shí)序圖

通信波特率是正常位時(shí)間的倒數(shù)。參見(jiàn)文獻(xiàn)[6],正常位時(shí)間=1×tq+tBS1+tBS2,其中,tq=(BRP[9 ∶0]+1)×tPCLK,tBS1=tq×(TS1[3 ∶1]+1),tBS2=tq×(TS2[2 ∶0]+1),tPCLK是APB1 總線的時(shí)鐘周期。BRP [9 ∶0],TS1[3 ∶1],TS2[2 ∶0]均在CAN 位時(shí)間寄存器(CAN_BTR)中定義。通信波特率計(jì)算式為

若取APB1 的時(shí)鐘頻率為36 MHz,BRP[9 ∶0] =47,TS1[3 ∶1]=2,TS2[2 ∶0]=1,則可計(jì)算出波特率為125 kbps,即為應(yīng)用實(shí)例使用的波特率。

3.2 STC89C52RC節(jié)點(diǎn)波特率設(shè)置

由51 單片機(jī)控制的CAN 節(jié)點(diǎn)是通過(guò)STC89C52RC設(shè)置CAN 控制器SJA1000 的相應(yīng)寄存器來(lái)實(shí)現(xiàn)的。在SJA1000 中CAN 總線的位時(shí)間采用了與STM32 相類(lèi)似的描述方式,因是不同廠家的產(chǎn)品,故使用了不同的稱謂。在SJA1000 中,位時(shí)間的最小單位稱為CAN 系統(tǒng)時(shí)鐘周期,用Tscl表示,對(duì)應(yīng)STM32 中的tq。每一位也是由同步段、時(shí)間段1、時(shí)間段2 組成,分別用Tsyncseg、Tseg1、Tseg2表示,與STM32 中的同步段、相位緩沖段1 和相位緩沖段2 對(duì)應(yīng)。

由于CPU 的架構(gòu)不同,具體的寄存器設(shè)置方式也不同,這是實(shí)現(xiàn)CAN 總線通信的關(guān)鍵技術(shù)細(xì)節(jié)。CAN系統(tǒng)時(shí)鐘周期為

式中:BRP.5 是總線定時(shí)器(BTR0)中BRP.5 位的設(shè)置狀態(tài),只有0 或1 這2 種可能;第BRP.4 位、BRP.3 位、BRP.2 位、BRP.1 位和BRP.0 位的設(shè)置狀態(tài)一并代入式(2)計(jì)算;Tclk是SJA1000 外部晶振的頻率周期,使用16 M 外部晶振。

在SJA1000 中,3 個(gè)段的計(jì)算式為

式(4)中,Tseg1.3、Tseg1.2、Tseg1.1、Tseg1.0 是總線定時(shí)器(BTR1)中對(duì)應(yīng)的位設(shè)置,式(5)中Tseg2.2、Tseg2.1、Tseg2.0也是總線定時(shí)器(BTR1)中對(duì)應(yīng)的位設(shè)置。

在SJA1000 中

在應(yīng)用實(shí)例中,設(shè)置總線定時(shí)器0 預(yù)設(shè)值0x03,即BRP0=0x03,即BRP.1 和BRP.0 為1,其余位為0。由式(2)可計(jì)算出CAN 系統(tǒng)時(shí)鐘周期Tscl=2×(2+1+1)/16 M。

總線定時(shí)器(BTR1)的設(shè)置值0x1C,即BTR1 =0x1C,即Tseg1.3=1,Tseg1.2=1,Tseg2.0=1,其他位為0,相應(yīng)可以計(jì)算出Tseg1= Tscl×(8 + 4 + 1)=13Tscl,Tseg2=Tscl×(1+1)=2Tscl,將其代入式(6)得

位時(shí)間=Tsyncseg+Tseg1+Tseg2=16×Tscl

波特率=1/(16×Tscl)=125 kbps

與前述STM32 設(shè)置的通信速率保持一致。

STC89C52RC 對(duì)SJA1000 的訪問(wèn)是按照外部存儲(chǔ)器方式來(lái)實(shí)現(xiàn)的,所以訪問(wèn)的基地址即為0xFE00,地址范圍0xFE00~0xFFFF,采用宏定義語(yǔ)句#define SJA_BASE_ADR0xFE00,定義該基地址后,對(duì)SJA1000 的存儲(chǔ)器的方式就是在該基地址基礎(chǔ)上加上相應(yīng)的偏移量,如發(fā)送緩沖區(qū)的第1 個(gè)字節(jié)位于第17 個(gè)寄存器,其地址為#defineSJA_RBSR0XBYTE[SJA_BASE_ADR+0x10]。

針對(duì)STC89C52RC 控制節(jié)點(diǎn)按照上述波特率設(shè)置方式對(duì)SJA1000 進(jìn)行軟件編程,保證主、從節(jié)點(diǎn)使用的波特率相同,即可實(shí)現(xiàn)51 單片機(jī)控制的各個(gè)從節(jié)點(diǎn)與STM32 控制的主節(jié)點(diǎn)的數(shù)據(jù)通信,從而構(gòu)建基于CAN 總線的多節(jié)點(diǎn)照明系統(tǒng)。

4 驗(yàn)證系統(tǒng)搭建

依據(jù)上述方案,項(xiàng)目組搭建了1 個(gè)主節(jié)點(diǎn)和3 個(gè)從節(jié)點(diǎn)的演示驗(yàn)證系統(tǒng)。主控節(jié)點(diǎn)采用STM32F103RBT6芯片,如圖5(a)所示,從節(jié)點(diǎn)采用STC89C52RC 單片機(jī)控制,由于與從節(jié)點(diǎn)配套的CAN 控制器SJA1000是一個(gè)單獨(dú)芯片,故采用了模塊化設(shè)計(jì),單獨(dú)設(shè)計(jì)了一個(gè)小印制板,采用插卡式安裝,如圖5(b)所示。

圖5 演示驗(yàn)證系統(tǒng)

這種設(shè)計(jì)方案既方便維修,又利于系統(tǒng)的升級(jí)換代。如在系統(tǒng)小型化設(shè)計(jì)時(shí),需要將插裝的單片機(jī)芯片改為貼片設(shè)計(jì),只需重新設(shè)計(jì)上部的主控板。演示驗(yàn)證系統(tǒng)中,主、從節(jié)點(diǎn)CAN 總線通信波特率均設(shè)置為125 kbps,可實(shí)現(xiàn)主節(jié)點(diǎn)對(duì)從節(jié)點(diǎn)的光照強(qiáng)度控制及各從節(jié)點(diǎn)的狀態(tài)輪詢。為降低節(jié)點(diǎn)成本,照明節(jié)點(diǎn)采用價(jià)格較低的LED 燈頭作為照明光源,LED 燈頭的供電驅(qū)動(dòng)為自主設(shè)計(jì)的LED 驅(qū)動(dòng)板,驅(qū)動(dòng)芯片使用AMC7150,而照明燈頭直接采購(gòu)市場(chǎng)上現(xiàn)成的產(chǎn)品。

5 結(jié) 語(yǔ)

本文設(shè)計(jì)實(shí)現(xiàn)了采用不同主控芯片,通過(guò)CAN 總線通信,實(shí)現(xiàn)多LED 照明節(jié)點(diǎn)控制系統(tǒng)。主節(jié)點(diǎn)功能為多點(diǎn)數(shù)據(jù)采集和信息顯示,采用意法半導(dǎo)體(ST)的32 位STM32F103 作為控制器,內(nèi)置了bxCAN 控制器。從節(jié)點(diǎn)采用低價(jià)的STC89C52RC 單片機(jī),需外擴(kuò)款獨(dú)立的CAN 控制器SJA1000。根據(jù)上述方案,本文搭建1 個(gè)主節(jié)點(diǎn)和3 個(gè)從節(jié)點(diǎn)的演示驗(yàn)證系統(tǒng)。所有節(jié)點(diǎn)CAN 總線通信波特率均設(shè)置為125 kbps,可實(shí)現(xiàn)節(jié)點(diǎn)間通信控制。系統(tǒng)采用的異構(gòu)CAN 節(jié)點(diǎn)通信技術(shù),也可用于其他通信網(wǎng)絡(luò)中,具有一定的應(yīng)用推廣價(jià)值。

猜你喜歡
波特率收發(fā)器總線
清管球收發(fā)器設(shè)計(jì)細(xì)節(jié)分析及應(yīng)用
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
智能制造(2020年5期)2020-07-03 06:24:00
基于PCI Express總線的xHC與FPGA的直接通信
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
Virtex5 FPGA GTP_DUAL硬核兩個(gè)收發(fā)器獨(dú)立使用的實(shí)現(xiàn)
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
河南科技(2014年16期)2014-02-27 14:13:22
C*Core芯片SCI串口波特率容限優(yōu)化
富士通半導(dǎo)體推出收發(fā)器家族全新LTE優(yōu)化多頻單芯片MB86L13A
大埔县| 濮阳市| 北碚区| 麻城市| 万宁市| 长丰县| 高台县| 青州市| 鄂托克旗| 普兰店市| 乌审旗| 汉寿县| 教育| 五家渠市| 淳安县| 翁源县| 四会市| 年辖:市辖区| 普洱| 麟游县| 岑巩县| 东源县| 永新县| 库伦旗| 彭阳县| 宝兴县| 彭州市| 安图县| 鲁甸县| 海城市| 汉川市| 弥渡县| 克什克腾旗| 炉霍县| 隆子县| 金秀| 上虞市| 民权县| 武鸣县| 宝应县| 太仆寺旗|