CN112433969A - 基于mcu io和sja1000的can数据收发方法 - Google Patents
基于mcu io和sja1000的can数据收发方法 Download PDFInfo
- Publication number
- CN112433969A CN112433969A CN202011235105.7A CN202011235105A CN112433969A CN 112433969 A CN112433969 A CN 112433969A CN 202011235105 A CN202011235105 A CN 202011235105A CN 112433969 A CN112433969 A CN 112433969A
- Authority
- CN
- China
- Prior art keywords
- sja1000
- data
- register
- mcu
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 5
- 230000002457 bidirectional effect Effects 0.000 abstract description 2
- 241000272194 Ciconiiformes Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及一种基于MCU IO和独立CAN控制器SJA1000的CAN总线数据收发方法,属于光电产品数据收发技术领域。本发明利用MCU IO和SJA1000以及CTM8251等电路芯片完成了CAN收发电路的搭建,采用MCU的一部分IO控制SJA1000控制接口,另外用8个IO通过双向数据缓冲芯片连接SJA1000的数据/地址接口,两者进行协同配合实现CAN总线数据的收发。实现了基于IO的地址/数据复用总线对SJA1000寄存器的读写,在此基础上完成了SJA1000的初始化、CAN总线数据的读取和发送,最终实现了光电产品对外的CAN总线信息传输。该方法鲁棒性高,移植性强,综合成本低。
Description
技术领域
本发明属于CAN总线收发技术领域,具体涉及一种基于MCU IO和SJA1000的CAN数据收发方法,应用于光电产品的对外通信。
背景技术
CAN总线作为一种可靠、灵活的总线技术,在工业控制中得到了广泛的应用,但是目前一些低端的MCU芯片并没内置的CAN收发控制器,还有一些MCU虽有内置的CAN控制器并不是很稳定,而且低端MCU没有并行数据接口或者被占用,而IO是所有MCU必备的接口,因此为提高CAN总线的应用范围,采用IO和独立的CAN控制器进行CAN数据的传输。SJA1000是一款成熟可靠的独立CAN控制器,IO是MCU芯片的基础管脚,其电平可置为高或者低,采用IO电平的高低可以用来控制SJA1000的控制管脚,另外采用8个IO模拟并行数据/地址接口,用于SJA1000和MCU的数据和地址的传输,因此采用MCU的IO与SJA1000的组合,即可完成CAN总线数据的收发控制。使用IO和SJA1000进行CAN总线数据的收发,利用对IO口电平控制模拟地址、数据、控制信号,并且要合理地安排不同信号之间的时序、方向、电平等。
发明内容
要解决的技术问题
为了解决现有的光电产品对外的CAN总线信息传输慢、不稳定的问题,本发明提出一种基于MCU IO和SJA1000的CAN数据收发方法。
技术方案
一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于所采用的电路包括MCU、SN74LVC4245A、SJA1000、CTM8251芯片,其中MCU的PB0~PB5连接SJA1000的控制管脚CS、ALE、RD、WR、RST、INT,MCU的PA8、PA9连接SN74LVC4245A的使能管脚OE和方向控制管脚DIR,MCU的PA0~PA7连接SN74LVC4245A的数据管脚1AD0~1AD7;SN74LVC4245A的数据管脚2AD0~2AD7与SJA1000的地址/数据管脚AD0~AD7连接,SJA1000的接收管脚RX和发送管脚TX分别与CTM8251的发送管脚和接收管脚相连,而CTM8251连接外部CAN总线设备的CANH、CANL、CANG,用以完成光电产品和外部设备的通信交换;步骤如下:
步骤1:进行MCU的上电复位,等待包括SJA1000在内的其它电路上电,配置与SJA1000控制管脚和SN74LVC4245A输入控制管脚相连的IO管脚,配置其输入输出方向以及默认电平大小;
步骤2:初始化SJA1000,SJA1000的初始化只能在复位模式的情况下初始化,需要将RST管脚电平拉低;
步骤3:配置输入输出缓冲器以及相关的状态寄存器和命令寄存器即可完成CAN总线数据的收发。
本发明技术方案更进一步的说:步骤2中SJA1000的初始化如下:
1)SJA1000进入复位模式,即RST置为低电平,复位有效,读取状态寄存器数据,确定已进入复位模式;
2)设置时钟频率,向时钟分频寄存器写入分频数值,然后读取此寄存器数值,以保证写入正确;
3)设置波特率,向波特率寄存器写入波特率数值,然后读取波特率寄存器数值,以保证写入正确;
4)设置验收代码和屏蔽,分别向验收代码寄存器和验收屏蔽寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
5)设置输出控制,向输出控制寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
6)SJA1000退出复位模式,即RST置为高电平,复位无效并进入工作模式,读取状态寄存器确保已经退出复位模式。
本发明技术方案更进一步的说:步骤3中CAN总线数据发送如下:
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1即为正在接收,发送缓冲器状态为0即为锁定,则需要等待直到接收状态为0,发送缓冲器状态为1;
2)向发送缓冲器的描述符区的第一个地址区0x10写入帧信息字节,依次向发送缓冲器的描述符区第二到第五字节区0x11-0x14写入识别码;
3)向发送缓冲区数据区写入数据;
4)向命令寄存器,写入0x01命令。
本发明技术方案更进一步的说:步骤3中CAN总线数据接收如下:
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1即为正在接收,接收缓冲器状态为0即为无可用数据,则需要等待直到接收状态为0,接收缓冲器状态为1;
2)读取0x10到0x22依次读取数据;
3)向SJA1000命令寄存器写入0x04的命令,释放接收缓冲器;
4)延迟10个计数周期;
5)向SJA1000命令寄存器写入0x00的命令,初始化命令寄存器。
本发明技术方案更进一步的说:对SJA1000的任何操作均需要通过对寄存器的读写完成。
本发明技术方案更进一步的说:向寄存器写数据具体如下:
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要写入的寄存器8位地址按位赋给IO管脚PA0~PA7,并将PA0~PA7设置为输出;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)置SJA1000写信号WR为低,写有效;
8)将需要写的8位数据按位赋给IO管脚PA0~PA7;
9)延迟10个时钟周期;
10)置SJA1000写信号WR为高,写无效;
11)延迟10个时钟周期;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能。
本发明技术方案更进一步的说:向寄存器读数据具体如下:
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要读入的寄存器8位地址按位赋给IO管脚PA0~PA7;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)SN74LVC4245芯片数据方向设置为SJA1000数据到MCU;
8)置SJA1000读信号RD为低,读有效;
9)延迟10个时钟周期;
10)STM32 IO管脚PA0~PA7设置为输入,读取PA0~PA7的值,组合即为需要读取的数据;
11)置SJA1000写信号RD为高,读无效;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能
有益效果
本发明提出的一种基于MCU IO和SJA1000的CAN数据收发方法,利用了MCU的IO和SJA1000以及相关芯片完成了CAN总线数据收发的硬件电路,借助了IO的高低电平完成对SJA1000的控制,利用8个IO口模拟地址、数据,完成对SJA1000寄存器的读写,在此基础上合理优化控制顺序、安排数据方向完成SJA1000的初始化设置以及CAN数据的发送和接收,实现了光电产品对外的CAN总线信息的稳定传输。
采用本发明的硬件连接方法简单明了,应用广阔,只要MCU的IO管脚足够,不要内置CAN模块也不需要并行接口,均可以采用此种硬件连接方法,可广泛应用于光电产品的对外信息传输。此种硬件连接方法简单可靠,综合成本低。数据收发算法清晰,易于移植且鲁棒性高。
附图说明
图1为本发明的硬件连接示意图;
图2为本发明的SJA1000芯片内部组成框图;
图3为本发明的算法总体流程图;
图4为本发明的SJA1000初始化流程图;
图5为本发明的数据发送流程图;
图6为本发明的数据接收流程图。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
本发明利用MCU的IO和SJA1000等芯片搭建基于CAN总线收发电路,设计算法实现光电产品CAN总线数据的收发。最终实现低成本的CAN总线数据的收发,以及降低CAN总线应用的硬件限制,使得不具备内嵌CAN模块的MCU,以及不具备并行数据接口的MCU芯片也可以完成CAN总线数据的收发,扩大CAN总线的应用范围。
采用了CAN独立控制器SJA1000作为CAN总线数据收发的核心器件。CTM8251将CAN总线的数据转为SJA1000可接收的数据形式。MCU部分IO管脚连接SJA1000的控制管脚,控制SJA1000的片选、读、写、锁存等操作,另一部分IO管脚通过SN74LVC4245A连接SJA1000的数据/地址管脚,用于CAN总线数据的收发。SN74LVC4245A用于控制MCU和SJA1000的数据传输方向,从而完成地址数据复用总线的数据传输。
如图1所示,利用MCU、SN74LVC4245A、SJA1000、CTM8251芯片搭建硬件电路,此电路内嵌于光电设备内部的对外通信电路板中。其中MCU的PB0~PB5连接SJA1000的控制管脚CS、ALE、RD、WR、RST、INT,MCU的PA8、PA9连接SN74LVC4245A的使能管脚OE和方向控制管脚DIR,MCU的PA0~PA7连接SN74LVC4245A的数据管脚1AD0~1AD7。SN74LVC4245A的数据管脚2AD0~2AD7与SJA1000的地址/数据管脚AD0~AD7连接,SJA1000的接收管脚RX和发送管脚TX分别与CTM8251的发送管脚和接收管脚相连,而CTM8251连接外部CAN总线设备的CANH、CANL、CANG,用以完成光电产品和外部设备的通信交换。
SJA1000是一个独立的CAN控制器,它在汽车和普通的工业应用上有先进的特征,SJA1000有一系列先进的功能适合于多种应用,特别在系统优化诊断和维护方面非常重要。
SJA1000具有两种工作模式,一种是BasicCAN,一种是PeliCAN(支持CAN 2.0B协议),本发明使用业界使用最为广泛的PeliCAN模式,BasicCAN模式相对PeliCAN较为简单,可根据本发明进行移植修改。
SJA1000接收CTM8251收到的数据,并将数据转换8为并行口数据,另外可以将SJA1000输入的8位并行口数据转化为串行的发送数据。
SJA1000主要由接口管理、收发模块、振荡器、复位模块组成,接口管理模块完成对外部主控制器的连接,其管脚分为控制管脚和地址/数据管脚,其中地址/数据管脚为复用管脚,控制管脚主要包括片选、锁存、度、写等,其主要管脚具体定义如下表:
SN74LVC4245A是一款具有三态输出的八路总线收发器和3.3V-5V的移位器,其具有双向导通功能,可用于收也可用于发,其通过方向管脚(DIR)控制数据的方向,可将数据由5V电平转换到3.3V的电平。SN74LVC4245A的数据控制如下表所示。
CTM8251高速CAN隔离收发器,其将CAN总线上的差分数据转换为单独收和单独发的数据,并具有前后隔离作用。
MCU芯片可为市面上常用的MCU芯片,采用不同的MCU芯片是需要考虑MCU IO口的电平特性,如果电平与SJA1000不匹配,应增加电平匹配芯片,例如74系列的电平匹配芯片。
如图3所示,为本发明数据收发流程,首先进行MCU的上电复位,等待包括SJA1000在内的其它电路上电,配置与SJA1000控制管脚和SN74LVC4245A输入控制管脚相连的IO管脚,配置其输入输出方向以及默认电平大小。下一步初始化SJA1000,SJA1000的初始化只能在复位模式的情况下初始化,需要将RST管脚电平拉低。初始化之后,再配置输入输出缓冲器以及相关的状态寄存器和命令寄存器即可完成CAN总线数据的收发。
首先应对SJA1000进行初始化,设置时钟频率、波特率、验收代码和屏蔽、输出控制等。发送数据时首先读取状态寄存器状态,若允许发送,则设置帧信息字节和识别码,并将发送数据写入发送缓冲器,向命令寄存器写入发送命令,则SJA1000自动将数据发送。读取CAN总线数据与发送类似,首先读取状态寄存器,若允许接收,则到接收缓冲寄存器依次读取数据,读取完成释放接收缓冲器即可。基于IO和SJA1000的CAN总线数据接收的核心在于使用IO完成对SJA1000寄存器的读写。
SJA1000是一种基于内存编址的I/O设备的微控制器,设备的独立操作是通过对片内RAM寄存器的修正来实现的,因此对SJA1000的任何操作均需要通过对寄存器的读写完成,首先介绍基于IO口的寄存器的读写算法。由于数据和地址为复用总线,因此如果需要对某一个寄存器进行操作,首先应对这个寄存器写地址操作,将寄存器地址写入SJA1000,然后控制SJA1000的ALE管脚锁存地址,最后根据需要对这个寄存器的数据进行写或者读操作。
向寄存器写数据
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要写入的寄存器8位地址按位赋给IO管脚PA0~PA7,并将PA0~PA7设置为输出;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)置SJA1000写信号WR为低,写有效;
8)将需要写的8位数据按位赋给IO管脚PA0~PA7;
9)延迟10个时钟周期;
10)置SJA1000写信号WR为高,写无效;
11)延迟10个时钟周期;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能。
从寄存器读数据
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要读入的寄存器8位地址按位赋给IO管脚PA0~PA7;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)SN74LVC4245芯片数据方向设置为SJA1000数据到MCU;
8)置SJA1000读信号RD为低,读有效;
9)延迟10个时钟周期;
10)STM32 IO管脚PA0~PA7设置为输入,读取PA0~PA7的值,组合即为需要读取的数据;
11)置SJA1000写信号RD为高,读无效;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能。
(1)SJA1000的初始化
SJA1000的初始化流程如图4。
1)SJA1000进入复位模式,即RST置为低电平,复位有效,读取状态寄存器数据,确定已进入复位模式;
2)设置时钟频率,向时钟分频寄存器写入分频数值,然后读取此寄存器数值,以保证写入正确;
3)设置波特率,向波特率寄存器写入波特率数值,然后读取波特率寄存器数值,以保证写入正确;
4)设置验收代码和屏蔽,分别向验收代码寄存器和验收屏蔽寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
5)设置输出控制,向输出控制寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
6)SJA1000退出复位模式,即RST置为高电平,复位无效并进入工作模式,读取状态寄存器确保已经退出复位模式。
(2)CAN总线数据发送算法
数据发送流程图见图5。
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1(正在接收),发送缓冲器状态为0(锁定),则需要等待直到接收状态为0,发送缓冲器状态为1;
2)向发送缓冲器的描述符区的第一个地址区(0x10)写入帧信息字节,依次向发送缓冲器的描述符区第二到第五字节区(0x11-0x14)写入识别码;
3)向发送缓冲区数据区写入数据;
4)向命令寄存器,写入0x01命令。
(3)CAN总线数据接收算法
数据接收流程图见图6。
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1(正在接收),接收缓冲器状态为0(无可用数据),则需要等待直到接收状态为0,接收缓冲器状态为1;
2)读取0x10到0x22依次读取数据;
3)向SJA1000命令寄存器写入0x04的命令,释放接收缓冲器;
4)延迟10个计数周期;
5)向SJA1000命令寄存器写入0x00的命令,初始化命令寄存器。
Claims (7)
1.一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于所采用的电路包括MCU、SN74LVC4245A、SJA1000、CTM8251芯片,其中MCU的PB0~PB5连接SJA1000的控制管脚CS、ALE、RD、WR、RST、INT,MCU的PA8、PA9连接SN74LVC4245A的使能管脚OE和方向控制管脚DIR,MCU的PA0~PA7连接SN74LVC4245A的数据管脚1AD0~1AD7;SN74LVC4245A的数据管脚2AD0~2AD7与SJA1000的地址/数据管脚AD0~AD7连接,SJA1000的接收管脚RX和发送管脚TX分别与CTM8251的发送管脚和接收管脚相连,而CTM8251连接外部CAN总线设备的CANH、CANL、CANG,用以完成光电产品和外部设备的通信交换;步骤如下:
步骤1:进行MCU的上电复位,等待包括SJA1000在内的其它电路上电,配置与SJA1000控制管脚和SN74LVC4245A输入控制管脚相连的IO管脚,配置其输入输出方向以及默认电平大小;
步骤2:初始化SJA1000,SJA1000的初始化只能在复位模式的情况下初始化,需要将RST管脚电平拉低;
步骤3:配置输入输出缓冲器以及相关的状态寄存器和命令寄存器即可完成CAN总线数据的收发。
2.根据权利要求1所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于步骤2中SJA1000的初始化如下:
1)SJA1000进入复位模式,即RST置为低电平,复位有效,读取状态寄存器数据,确定已进入复位模式;
2)设置时钟频率,向时钟分频寄存器写入分频数值,然后读取此寄存器数值,以保证写入正确;
3)设置波特率,向波特率寄存器写入波特率数值,然后读取波特率寄存器数值,以保证写入正确;
4)设置验收代码和屏蔽,分别向验收代码寄存器和验收屏蔽寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
5)设置输出控制,向输出控制寄存器写入配置数据,然后读取此寄存器数值,以保证写入正确;
6)SJA1000退出复位模式,即RST置为高电平,复位无效并进入工作模式,读取状态寄存器确保已经退出复位模式。
3.根据权利要求1所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于步骤3中CAN总线数据发送如下:
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1即为正在接收,发送缓冲器状态为0即为锁定,则需要等待直到接收状态为0,发送缓冲器状态为1;
2)向发送缓冲器的描述符区的第一个地址区0x10写入帧信息字节,依次向发送缓冲器的描述符区第二到第五字节区0x11-0x14写入识别码;
3)向发送缓冲区数据区写入数据;
4)向命令寄存器,写入0x01命令。
4.根据权利要求1所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于步骤3中CAN总线数据接收如下:
1)读取SJA1000的状态寄存器,如果状态寄存器的接收状态为1即为正在接收,接收缓冲器状态为0即为无可用数据,则需要等待直到接收状态为0,接收缓冲器状态为1;
2)读取0x10到0x22依次读取数据;
3)向SJA1000命令寄存器写入0x04的命令,释放接收缓冲器;
4)延迟10个计数周期;
5)向SJA1000命令寄存器写入0x00的命令,初始化命令寄存器。
5.根据权利要求1所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于对SJA1000的任何操作均需要通过对寄存器的读写完成。
6.根据权利要求5所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于向寄存器写数据具体如下:
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要写入的寄存器8位地址按位赋给IO管脚PA0~PA7,并将PA0~PA7设置为输出;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)置SJA1000写信号WR为低,写有效;
8)将需要写的8位数据按位赋给IO管脚PA0~PA7;
9)延迟10个时钟周期;
10)置SJA1000写信号WR为高,写无效;
11)延迟10个时钟周期;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能。
7.根据权利要求5所述的一种基于MCU IO和SJA1000的CAN总线数据收发方法,其特征在于向寄存器读数据具体如下:
1)使能SN74LVC4245芯片,数据方向设置为MCU数据到SJA1000;
2)置SJA1000输入锁存信号ALE为高,使锁存有效;
3)将需要读入的寄存器8位地址按位赋给IO管脚PA0~PA7;
4)延迟10个时钟周期;
5)置SJA1000输入锁存信号ALE为低,使锁存无效;
6)置SJA1000片选信号CS为低,使片选有效;
7)SN74LVC4245芯片数据方向设置为SJA1000数据到MCU;
8)置SJA1000读信号RD为低,读有效;
9)延迟10个时钟周期;
10)STM32 IO管脚PA0~PA7设置为输入,读取PA0~PA7的值,组合即为需要读取的数据;
11)置SJA1000写信号RD为高,读无效;
12)置SJA1000片选信号CS为高,使片选无效;
13)关闭SN74LVC4245芯片使能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011235105.7A CN112433969A (zh) | 2020-11-08 | 2020-11-08 | 基于mcu io和sja1000的can数据收发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011235105.7A CN112433969A (zh) | 2020-11-08 | 2020-11-08 | 基于mcu io和sja1000的can数据收发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112433969A true CN112433969A (zh) | 2021-03-02 |
Family
ID=74700789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011235105.7A Pending CN112433969A (zh) | 2020-11-08 | 2020-11-08 | 基于mcu io和sja1000的can数据收发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433969A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132119A (zh) * | 2021-03-08 | 2021-07-16 | 东风电驱动系统有限公司 | 一种can网络节点设备快速启动并响应网络的电路及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143363A1 (en) * | 2004-12-23 | 2006-06-29 | Peter Steffan | Module interface handler for controller area network (CAN) communication module |
CN105487438A (zh) * | 2015-11-26 | 2016-04-13 | 中国电子科技集团公司第十八研究所 | 一种can总线控制器sja1000与dsp的接口控制方法 |
CN109962830A (zh) * | 2017-12-26 | 2019-07-02 | 中国船舶重工集团公司七五〇试验场 | 一种基于fpga的高效can总线接口 |
-
2020
- 2020-11-08 CN CN202011235105.7A patent/CN112433969A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143363A1 (en) * | 2004-12-23 | 2006-06-29 | Peter Steffan | Module interface handler for controller area network (CAN) communication module |
CN105487438A (zh) * | 2015-11-26 | 2016-04-13 | 中国电子科技集团公司第十八研究所 | 一种can总线控制器sja1000与dsp的接口控制方法 |
CN109962830A (zh) * | 2017-12-26 | 2019-07-02 | 中国船舶重工集团公司七五〇试验场 | 一种基于fpga的高效can总线接口 |
Non-Patent Citations (5)
Title |
---|
姚君: "基于状态机方法的CAN总线通信的FPGA实现", 《国外电子测量技术》 * |
王新平;龚玉梅;王旭辉;: "基于CPLD的CAN控制器与DSP通信接口设计" * |
王新平等: "基于CPLD的CAN控制器与DSP通信接口设计", 《科学技术与工程》 * |
黄明;梁旭;岳洋;: "基于CAN总线设计实现的数据采集监控系统" * |
黄明等: "基于CAN总线设计实现的数据采集监控系统", 《化工自动化及仪表》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132119A (zh) * | 2021-03-08 | 2021-07-16 | 东风电驱动系统有限公司 | 一种can网络节点设备快速启动并响应网络的电路及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5561826A (en) | Configurable architecture for serial communication | |
EP1002275B1 (en) | A universal serial bus device controller | |
CN101208678B (zh) | 用于rs-232转i2c转换集成电路与主机间通信的软件层 | |
CN102752180A (zh) | Can总线网络节点的实现方法 | |
US5564061A (en) | Reconfigurable architecture for multi-protocol data communications having selection means and a plurality of register sets | |
CN107436851B (zh) | 串行外设接口四线隔离系统及其控制方法 | |
CN112433969A (zh) | 基于mcu io和sja1000的can数据收发方法 | |
CN107643993A (zh) | 总线转换接口、总线转换接口的工作方法和通信设备 | |
CN209627391U (zh) | 双冗余式rs485-can通信板 | |
CN101907683A (zh) | 数字基带芯片中i2c模块的自动测试电路结构及其方法 | |
CN110572174B (zh) | 支持蓝牙ble协议的射频收发器及其控制方法 | |
CN104917511A (zh) | 一种能兼容mipi和gpio控制的射频功放模组的接口电路 | |
CN113783584B (zh) | 一种隔离型单线串行通信装置及方法 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
TWI719684B (zh) | 通訊系統以及運作方法 | |
CN213122983U (zh) | 基于fpga实现的片上系统 | |
CN201820120U (zh) | 自适应多总线执行机构控制器 | |
CN210691255U (zh) | 一种同步唤醒装置 | |
CN111488300A (zh) | 一种基于asi总线的扩展系统 | |
CN220139618U (zh) | 一种支持多接口通讯的摄像模组 | |
CN1581126A (zh) | Iic总线控制系统及其实现方法 | |
CN211956196U (zh) | 一种can总线通信控制装置 | |
CN204719747U (zh) | 串行外设接口的兼容设备、串行外设接口及主机设备 | |
US20130036245A1 (en) | Device and Method for Enhancing Flexibility of Interface Between 3G Communication Module and Application Processor | |
CN111832049B (zh) | 一种基于spi的数据传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210302 |