AUTOSAR_SRS_SPIHandlerDriver_学习笔记
Grey
全部学习汇总: https://github.com/GreyZhang/hack_autosar
AUTOSAR_SRS_SPIHandlerDriver_学习笔记
- 多次听到SPI异步传输,究竟是一个什么用法,这一次正好了解一下。
- 这几个术语的理解跟我之前自己望文生义理解的还是有一点点差异。
- 通道:这是一个软件的概念而不是一个硬件的概念,从描述看,一个通道表征的是一组配置属性以及使用的buffer。
- Job:由一个或者多个通道组成,用了相同的片选,有优先级的操作属性。这个从描述看,应该是一个动作,而且是原子操作不可中断。
- 序列:一系列的Job组成的,可以重新调度。
- 图中可以看出几种不同的SPI:DMA SPI、队列SPI以及普通SPI。
- AUTOSAR的SPI设计中考虑了菊花链的支持。
- 有时候,头绪杂乱的时候多少有一点会对新的技术点有点抗拒,人总是喜欢呆在舒适区中。其实,换一个角度考虑一下,类似的技术都是很成熟的本来就没有太大的挑战性,反过来说,挑战一下倒是很容易增加工程师的成就感,何乐而不为呢!
- SPI的传输bit数目应该是可以配置的,而且支持的应该是1-32bit全都可以配置而不仅仅是8bits、16bits、32bits。
- 疑问:难道这样的配置所有的SPI硬件都是支持的吗?
- 不同优先级的支持主要是考虑对异步模式的支持。
- SPI总线本身是同步的,不支持超时检测。
- 异步模式可以使用FIFO模式。
- 如果支持FIFO且有足够深的队列深度,那么系统设计上的确会容易可靠一些。
- 异步功能有一个状态返回接口。
- SPI的驱动应该按照请求的顺序执行。
这次看了SPI设计的基本需求,对这个大概的框架也算是有了一点点熟悉了。之前总觉得AUTOSAR框架下什么都是麻烦的,现在看来之前似乎也是自己把自己给吓住了。