工作用到机器的开发板 有如上三个接口 。最右是仿真器,中间是RS232串口,最左是电源线
仿真器
这个是仿真器 接入机器那端用的是SWD模式,另一端通过USB接电脑(这小肥手拍的怪好看)仿真口连接了四条线分别是
VCC:电源供电线,提供给目标设备或芯片的电源。
GND:地线,用于电气接地。
SWDIO:SWD的数据线,用于调试数据传输。
SWCLK:SWD的时钟线,用于同步调试时钟信号。
- 信号线功能
SWDIO(Serial Wire Debug I/O):
数据传输:SWDIO线用于双向数据传输。在数据传输期间,这条线上可以传输命令、地址、数据和响应。
状态反馈:SWDIO还可以反馈目标设备的状态信息,例如确认数据接收、完成操作等。
SWCLK(Serial Wire Debug Clock)
时钟同步:SWCLK是由调试工具(通常是仿真器)生成的时钟信号。这个时钟信号用于同步数据传输。SWD协议规定了在每个时钟周期内如何在SWDIO上进行数据采样和响应。
- 数据传输流程
SWD的数据传输过程如下:
初始化:
调试工具通过SWDIO和SWCLK发送初始化序列,以确保目标设备处于正确的状态。这包括发送复位和同步序列,以建立通信。
命令传输:
调试工具通过SWDIO发送调试命令。这些命令可以是读取或写入寄存器、读取内存等操作。命令通常由几个位组成,例如指定读/写操作、寄存器地址和数据等。
数据传输:
在命令的执行过程中,调试工具和目标设备之间在SWDIO上交换数据。数据的传输是由SWCLK时钟信号控制的,确保数据的稳定传输和正确采样。
状态反馈:
目标设备在执行命令或操作后,通过SWDIO反馈状态信息给调试工具。例如,确认命令接收、数据传输完成等。
-
时钟同步和速度
时钟同步:SWCLK作为时钟信号,控制数据在SWDIO上的传输和采样时机。每个数据位都在SWCLK的上升或下降沿进行传输,确保数据的同步和可靠性。
通信速度:SWD支持高速通信,时钟频率可以达到几十MHz,这使得调试操作可以在较短的时间内完成,提高了调试的效率和响应速度。 -
优势和适用性
SWD接口相对于传统的JTAG接口具有更少的引脚需求和更高的通信速度。这使得它在现代复杂的嵌入式系统中广泛应用,特别是在要求高效率和精确调试能力的应用场景中,如嵌入式软件开发和硬件调试。
总体来说,SWD通过SWDIO和SWCLK两根线实现了高效的调试数据传输和时钟同步,为ARM Cortex处理器的调试提供了强大的支持。
串口
使用了RS232串口通信,但只用了16,12,7,三个针脚,分别是
针脚 16: 可能是数据发送线 (TX),用于从数据终端设备 (DTE) 发送数据到数据通信设备 (DCE)。
针脚 12: 可能是数据接收线 (RX),用于从数据通信设备 (DCE) 接收数据到数据终端设备 (DTE)。
针脚 7: 可能是地线 (GND),用于确保信号电平的参考电位。
数据传输会利用到一些通信协议,一般常用的是MDB,CCnet,等。
CCNet协议
CCNet, 应该是行业内的爸爸,CashCode公司自主制定的协议,我们这个小卡拉米公司同样使用这个协议。
如上图示,是传输中的数据构成,这里我用了CashCode公开的文档(虽然我们公司的文档做的跟这个没什么两样,但是怕他告我泄密…)
MDB协议
MDB协议广泛应用于自助售卖机,又名ICP协议,是由NAMA和EVA共同提出的
通信格式: