梁妍 原立格 郝洋洲
(1.鄭州工商學(xué)院,河南 鄭州 451400;2.河南省航空物探遙感中心,河南 鄭州 450053)
基于STM32的CAN總線接口控制系統(tǒng)設(shè)計(jì)
梁妍1原立格1郝洋洲2
(1.鄭州工商學(xué)院,河南鄭州451400;2.河南省航空物探遙感中心,河南鄭州450053)
本文設(shè)計(jì)了一種汽車的接口控制系統(tǒng),以STM32為主控器,搭配傳輸速度快且性能穩(wěn)定的TJA1042 CAN收發(fā)器,可以與CAN總線數(shù)據(jù)和串行數(shù)據(jù)同時通信,該接口與多種多媒體設(shè)備連接,使車身在融合了強(qiáng)大的娛樂功能的同時又可以更加方便地對車輛進(jìn)行監(jiān)控和控制,實(shí)現(xiàn)汽車智能化。
接口控制;STM32;CAN總線;通信;智能化
近年來,嵌入式在車身上的應(yīng)用愈加流行,與CAN總線的高效通信也提高了車輛的總體性能。CAN總線是一種實(shí)時總線,有一定的通信協(xié)議來作為標(biāo)準(zhǔn),數(shù)據(jù)的傳輸可以用普通的線束也可以用雙絞線,而且是一種多主多控的通信總線,帶有自檢功能,還能有效抵抗電子干擾,傳輸速率最高可達(dá)1Mbps。隨著嵌入式技術(shù)的快速發(fā)展,在汽車應(yīng)用中將嵌入式與CAN總線配合使用,不僅降低了制造成本,提高了運(yùn)算傳輸速度和安全性,還更加靈活、易操控[1]。
本文采用具有CAN接口的STM32開發(fā)板作為通信的主芯片,搭配具有CAN收發(fā)控制功能的TJA1042模塊,來實(shí)現(xiàn)一個完整的CAN通信網(wǎng)絡(luò)系統(tǒng)??偩€連接的各模塊除了和主芯片通信以外,還可以依據(jù)總線協(xié)議相互通信。在汽車上將汽車CAN總線數(shù)據(jù)轉(zhuǎn)化為串口數(shù)據(jù)與智能產(chǎn)品對接,用作監(jiān)控車輛信息,指示車身動態(tài),還可以警示開車人員等,同樣將與串口對接的電子產(chǎn)品發(fā)出的串口數(shù)據(jù)轉(zhuǎn)化成能夠控制汽車的CAN總線數(shù)據(jù),就能控制車載空調(diào)、倒車?yán)走_(dá)、車輛照明、車輛設(shè)置等車輛已有的與總線對接的車載電子,使汽車智能化的功能更加強(qiáng)大[2]。
硬件總體是以STM32為主控芯片,通過CAN收發(fā)器與CAN總線對接,從而控制CAN總線的收發(fā)。總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。該結(jié)構(gòu)中的顯示屏模擬及車輛模型是調(diào)試模擬模塊。STM32的I/O口經(jīng)硬件電路轉(zhuǎn)換后輸出10V電壓,然后STM32對ACC、ILL(背光)、SONAR(倒車?yán)走_(dá)使能)等進(jìn)行控制,通過串口直接連到串行總線上。CAN總線網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,總線的兩端都有一個120Ω的電阻。
圖2 CAN總線網(wǎng)絡(luò)結(jié)構(gòu)
2.1主控模塊設(shè)計(jì)
本設(shè)計(jì)選用的主控芯片是STM32072C8,是高性能的32位RISC內(nèi)核的MCU,工作頻率高達(dá)48MHz,具有高速嵌入存儲器以及各種增強(qiáng)性外設(shè)和I/O,提供標(biāo)準(zhǔn)的通信接口、USB全速器件、CAN等功能,主要用在應(yīng)用控制和用戶接口、手持設(shè)備、A/V接收器和數(shù)字TV、PC外設(shè)、游戲和GPS平臺、PLC、逆變器、打印機(jī)、掃描儀、告警系統(tǒng)視頻互連和HVAC。該芯片使用時供電電壓是2.0~3.6V。主控模塊的最小系統(tǒng)包括時鐘電路和復(fù)位電路兩部分,其電路如圖3所示。該時鐘電路選用8MHz的晶振,配合2個20PF的電容器件構(gòu)成,整個最小系統(tǒng)電路結(jié)構(gòu)簡單,容易實(shí)現(xiàn)。
圖3 STM32最小系統(tǒng)電路
2.2CAN通信模塊
由于STM32072集成了CAN控制器,所以STM32可直接與CAN收發(fā)器相連來控制CAN總線數(shù)據(jù)的收發(fā)。本設(shè)計(jì)用的CAN收發(fā)器為TJA1042,其是一款高速CAN收發(fā)器,是CAN控制器和物理總線之間的接口,為CAN控制器提供差動發(fā)送和接收功能。該收發(fā)器專為汽車行業(yè)的高速CAN應(yīng)用設(shè)計(jì),傳輸速率高達(dá)1Mbit/s,供電電源選用5V電源。圖4是STM32的CAN模塊通信接口的原理圖。
圖4 CAN模塊通信接口原理圖
2.3電源電路設(shè)計(jì)
本設(shè)計(jì)采用的是12V供電系統(tǒng),而主芯片需要3.3V電源,CAN通信模塊需要5V電源,為了給主芯片和CAN收發(fā)器提供合適的電壓,實(shí)現(xiàn)了5V和3.3V 2個供電系統(tǒng)。其中,5V電源電路設(shè)計(jì)如圖5所示,電路中選用了CJ78L05穩(wěn)壓器,輸出5V穩(wěn)定電壓。圖6為3.3V電源電路設(shè)計(jì),選用的穩(wěn)壓器為ZTP1117,輸出穩(wěn)定電源3.3V。
圖55 V電源電路設(shè)計(jì)圖
圖63.3V電源電路設(shè)計(jì)圖
2.4主控器外圍接口控制電路的設(shè)計(jì)
在控制器的外圍可以接多個電路,如車輛各種智能功能的控制電路等。在控制器與CAN總線的配合下,可以完成數(shù)據(jù)的收發(fā)及控制。若連接顯示模擬器,經(jīng)USB轉(zhuǎn)串口(FT232)發(fā)出串口數(shù)據(jù),主控芯片接收到串口數(shù)據(jù)之后,從CAN_TX經(jīng)I/O口轉(zhuǎn)CAN總線數(shù)據(jù)(TJA1042)來控制與CAN總線相連的各汽車ECU模塊。若連接的是車輛模型的各種功能口,既可以完成STM32經(jīng)TJA1042來監(jiān)控車身發(fā)出的CAN總線數(shù)據(jù),再由串口TX發(fā)送給顯示屏,顯示當(dāng)前的汽車信息,又能實(shí)現(xiàn)主控芯片接收到CAN總線數(shù)據(jù)之后經(jīng)電路轉(zhuǎn)換直接控制ACC、背光、倒車?yán)走_(dá)使能。設(shè)計(jì)以控制ACC功能為例,說明主控芯片直接控制汽車相關(guān)功能??刂齐娐穲D如圖7所示,該電路與STM32的14引腳連接,主控芯片接收到CAN總線數(shù)據(jù)之后經(jīng)過電路轉(zhuǎn)換直接控制ACC功能的實(shí)現(xiàn)。
圖7 控制硬件ACC輸出
2.5仿真調(diào)試接口設(shè)計(jì)
在線調(diào)試采用串行單線調(diào)試(SWD),只需要1根時鐘信號線(SWCLK)和1根信號線(SEDIO)再加上3.3V供電和連接地線即可。與標(biāo)準(zhǔn)的JTAG仿真調(diào)試相比,不僅提高了調(diào)試速率,減少GPIO口的使用,還節(jié)省了電路板的空間,簡化了PCB布線。SWD接口電路如圖8所示。
圖8 SWD接口電路
軟件是基于IAR Systems平臺來開發(fā),選用C++語音進(jìn)行編程,仿真模擬界面選擇G語言來實(shí)現(xiàn)。結(jié)構(gòu)上采用模塊化方式,除ST公司提供的固件庫基礎(chǔ)配置外,程序主要分為幾個模塊:系統(tǒng)初始化模塊、應(yīng)用程序模塊、應(yīng)用程序基礎(chǔ)配置模塊、應(yīng)用程序優(yōu)化調(diào)用模塊。程序流程圖如圖9所示。
圖9 程序流程圖
初始化配置主要包括時鐘、I/O口、串行端口、CAN口、硬件輸出和中斷等的配置。串行通訊采用USART復(fù)用I/O口PA9和PA10作為串行總線的TX和RX,TX配置為輸出,速度為50MHz,RX配置為復(fù)用上拉輸入。采用標(biāo)準(zhǔn)USART通信接口,邏輯電平為3.3V,USART工作在8N1模式,即8位數(shù)據(jù)位,無奇偶校驗(yàn),一位停止位。工作方式和中斷配置,波特率固定在38 400bps。
CAN通訊采用復(fù)用I/O口PB9和PB8作為串行總線的CAN_TX和CAN_RX,CAN_TX配置為GPIO_PuPd_NOPULL(無上拉也無下拉)輸出,速度為2MHz,CAN_RX配置為復(fù)用上拉輸入。邏輯電平為4V,CAN通訊同樣工作在8N1模式,即8位數(shù)據(jù)位,無奇偶校驗(yàn),一位停止位。CAN通訊的配置參照CAN2.0標(biāo)準(zhǔn)幀格式,總線傳輸波特率為500KHz/s。
圖10 車輛模擬
本設(shè)計(jì)中運(yùn)行結(jié)果的模擬以某一項(xiàng)功能為例,顯示屏模擬發(fā)出串口數(shù)據(jù)經(jīng)控系統(tǒng)轉(zhuǎn)換成CAN總線數(shù)據(jù)發(fā)送給車輛模型,或控制系統(tǒng)接收到CAN總線數(shù)據(jù)以后直接轉(zhuǎn)硬件輸出高電平發(fā)送給車輛模型,運(yùn)行結(jié)果依車輛模擬的狀態(tài)顯示為準(zhǔn),車輛模擬如圖10所示。控制系統(tǒng)接收總線數(shù)據(jù),然后轉(zhuǎn)成串口數(shù)據(jù)發(fā)給顯示屏模擬,運(yùn)行結(jié)果以顯示模擬的狀態(tài)顯示為準(zhǔn),顯示屏模擬如圖11所示。
圖11 顯示屏模擬
本設(shè)計(jì)的控制系統(tǒng)可以作為一個解碼盒來使用,利用嵌入式和CAN總線相結(jié)合的控制系統(tǒng),不僅打破了傳統(tǒng)汽車娛樂系統(tǒng)的配置方法,給超智能汽車的打造留足了空間,可以在原有基礎(chǔ)上擴(kuò)展更多的功能,極大地節(jié)約了成本,簡化了繁瑣的布線方式,提高了車載電子系統(tǒng)的穩(wěn)定性[3]。智能娛樂車載電子系統(tǒng)離不開這樣一款解碼盒來充當(dāng)媒介,越來越多且越來越智能、精美的電子產(chǎn)品需要與汽車結(jié)合來豐富人們的駕駛旅途生活,而市場的需求也將進(jìn)一步推進(jìn)車載解碼盒的快速研發(fā)升級,變得效率更高,功能更加強(qiáng)大,性能更加穩(wěn)定,人們的駕駛生活也會更加安全、舒適。
[1]楊春杰,王曙光,亢紅波.CAN總線技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.
[2]盧有亮.基于STM32的嵌入式系統(tǒng)原理與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2013.
[3]楊晶.CAN總線接口電路設(shè)計(jì)[J].辦公自動化,2010(2):34-35.
Design of CAN Bus Interface Control System Based on STM32
Liang Yan1Yuan Lige2Hao Yangzhou2
(1.Zhenzhou Technology and Business University,Zhengzhou Henan 451400;2.Henan Aero Geophysical Survey and Remote Sensing Center,Zhengzhou Henan 450053)
In this paper,the control system for a vehicle interface was designed,it took the STM32 as the main controller,matched the transmission speed and stable performance of the TJA1042 can transceiver,could communicate with CAN bus data and serial data at the same time,the interface and a variety of multimedia devices were connected,so that the body in the integration of powerful entertainment features at the same time could be more convenient vehicle for monitoring and control,to realize the intelligent car.
interface control;STM32;CAN bus;communication;intelligent
TP273.5
A
1003-5168(2016)06-0095-04
2016-05-10
河南省教育科學(xué)“十二五”規(guī)劃項(xiàng)目(〔2015〕-JKGHZD-0027)。
梁妍(1985-),女,碩士,講師,研究方向:電子信息、電氣自動化;原立格(1978-),女,碩士,講師,研究方向:電類、通信。