1.寄存器BACON的各位段功能
TC397是Infineon(英飞凌)公司的一款汽车级32位ARM Cortex-M3微控制器
把32位寄存器分为不同字段,不同字段配置的功能不同,详情看芯片手册描述。
LAST: 0表示这个数据字节后还有数据字节,1表示这个数据字节是当前帧的最后一个数据字节.
IPRE:设置消息的发送间隔时间的分频系数
IDLE:设置延迟时间长度 0-8个TQ
...
BYTE:标识DL字段的单位是位还是字节 0表示位 1表示字节
DL:表示数据长度 共5位 最大表示32位或32字节
CS:选择从机 共4位 可以选择16个不同的从机 每个从机都有一个独立的编号 主机通过CS(Channel Select)来选择从机
为什么要先传入FIFO在传入移位寄存器??
先传入FIFO会提高传输速率,移位寄存器的空间非常小,如果只用移位寄存器储传输数据的话,cpu会频繁调度发送的数据,占用大量的cup资源,如果先传入FIFO中 ,就可以极大的减少对cpu的访问。如果FIFO中有数据的话,它会在移位寄存器的时钟信号的控制下传入移位寄存器。同时cpu的速度远远快于移位寄存器,FIFO起到一个缓冲区的作用。
短数据,长数据?
短数据:数据长度小于FIFO缓冲区大小的叫做短数据,可一次性传输,不需要分包
长数据:数据长度大于FIFO缓冲区大小的叫做长数据,可以多次传输,需要切分成多个数据包传输
应用场景:长数据一般用于大容量数据块的传输,如音视频文件,传感器实时采集的高速率数据流。如雷达信号等。 短数据一般用于小数据量的状态、控制信息传输。如设备的寄存器配置、控制指令等,报文协议中的数据帧信息传输。如CAN、LIN总线协议。
SPI
SPI是一个同步的数据总线,使用单独的数据线和单独的时钟信号来保证发送与接收的同步
时钟是一个震荡信号,数据的采集时机可以是在时钟信号的上升沿和下降沿(具体看对spi的配置)
spi总线包括4条逻辑线:
MISO:主机输入
MOSI:主机输出
SCLK:串行时钟信号
SS:片选信号
(不同的制造商可能命名规则不同,但含义都相同)
SPI总线的主机必须在通信开始的时候配置并生成相应的时钟信号,并在每个SPI时钟周期内,进行全双工数据传输
主机在MOSI发送一位数据,从机读取,从机在MISO发送一位数据,主机读取,就算进行单向的数据传输也要保持这样的顺序,在单项数据传输过程中,从机向主机发送的叫做虚拟数据,本身没有含义。,
除了配置时钟频率,SPI主设备还需要配置时钟极性。
时钟极性通常写为CKP或CPOL,
CPOL = 1:表示空闲时是高电平;
CPOL = 0:表示空闲时是低电平。
下图将CPOL置为0。行时钟速率和极性外,SPI主设备还应配置时钟相位(或边沿)。根据硬件制造商的不同,时钟相位通常写为CKE或CPHA
时钟相位/边沿,用来决定何时进行信号采样,在第一个跳变沿还是第二个跳变沿。
CPHA = 0
:在时钟信号 SCK
的第一个跳变沿采样;
CPHA = 1
:在时钟信号 SCK
的第二个跳变沿采样
CPOL和COHA共同配置数据采样的时机