首页 > 代码库 > DSA通讯协议

DSA通讯协议

1.DSA-接口规范

DSA总线是一个异步,双向的,内部设计用于在一组两个微处理器之间的通信总线。

它有三个双向线:

DATA -启动同步和数据传输

STB -数据选通(当STB为低电平时数据是有效的)

ACK -启动同步,数据传输,确认及通信应答 

 

2.通讯说明

每个数据通信包括三个阶段:

开始同步 同步发射器和接收器数据传输

数据传输 通过数据选通和应答信号传输所有的数据位。

通信应答 接收器可以让发射机知道通信是否异常,如果通信没有出现错误,有 可能重复它,直到它是确定

 

处理器被称为发射器,当它想传输数据。它从一个同步阶段开始,传输数据,并要求收到最后的通信应答。

其他处理器自动成为接收器。

 

2.1同步启动 

发射器拉低数据线,让对方知道它要发送一些数据。然后它开始等待,直到ACK线被拉低接收到一个来自接收方确认信号,确认接受传输请求和准备好接受数据。

然后发送方拉高DATA信号,等待ACK线被拉高,如果ACK被拉高则表示同步结束,发送方和接收方都准备好了数据传输。

 

有可能两个处理器要在同时传输他们的数据,同时拉低DATA线然后等待ACK线上的应答信号。因此,有必要在同步开始的时候在软件中添加超时发送。超过超时时间时,伺服处理器,伺服处理器拉高DATA线,然后检测用户处理器是否有发起同步信号。如果是,他先接受数据,然后伺服处理器可以再拉低数据线再次传输数据。

伺服处理器不能通过同步阶段当它已经有新数据要发送的时候,旧的数据将被覆盖。

 

2.2数据传输

在这部分的通信的所有数据位都从发射机传送到接收机,根据位变发射机设置数据线被发送。当数据线变稳定后,发射机拉低STB线来告诉接收机在数据线上的信息是有效的。当STB线的低电平状态被是识别后,接收器开始读DATA先的信息。然后接收机拉低ACK线来告诉发送机数据已经被读好了。当发送方检测到ACK变低后,将STB脚拉高,当接收方检测到STB变高后,将ACK拉高,完整的1bit的数据就结束了。

如果伺服处理器不能在(TTRF)传输16位数据,它拉高DATA线和STB线,并拉低ACK线进入通信阶段。

 

2.3通信应答 

总线上的尖峰可能会导致发射器和接收器出来的同步。此时接收器应该已经收到指定的位计数准确,如果接收方的位计数器不等于这个指定的计数时,接收器清除数据线,否则此线保持高,在此之后,接收器清除STB线。这意味着对于发射机,该比较结果是在DATA线上有效。发射器读取数据线,然后设置ACK线高。这意味着为接收器的数据线是由发送器读取。当接收器识别到的ACK线为高时,它设置两者的DATA和STB线高。现在,所有的通信都完成,在DSA-总线再次空闲。如果通信没有发生错误,变送器应重复(仅一次)进行最后一次通信开始同步阶段

如果接收方不在范围内TCOM通信应答阶段作出适当的反应,伺服处理器(=变送器)将此解释为一个通信错误,并设置高的所有行。

 

在使用该通讯协议的时候,需要注意一下几点: 

1.在总线空闲的时候,用户处理器和伺服处理器都处于读数据的状态。当某一方需要发送数据的时候,再把它设置为写状态。

2.在同步或是数据传输的阶段,如果超时没有接到相应的应答,发送方应将状态转为读状态。主要是为了处理双方同时需要传输数据

3.DSA总线是一个异步,双向的,内部设计用于在一组两个微处理器之间的通信总线。
4.每传输一个比特位都需要再同步。且每次只能传输一个比特位。

 

 

DSA通讯协议