如何即时更改Simulink xPC目标串行通讯速度

时间:2020-03-05 18:47:28  来源:igfitidea点击:

我有一个xPC目标应用程序,可通过RS-232与设备通信。我正在为此使用xPC串行块。
要与该设备对话,我首先必须以默认速度(例如9600 bps)开始,请求将速度更改为例如57600 bps,然后在我这一边更改速度以匹配它。
xPC块的问题在于,它会迫使我们在运行之前选择特定的速度,而无法在运行时进行更改。有没有一种方法/技巧/黑客可以做到这一点?

解决方案

回答

到目前为止,这是我的收获。我不认为可以使用现有的Simulink块来完成。我想我将不得不采用Matlab随附的xpcserial C代码,采用设置RS-232速度的代码,并将其包装在我自己的S函数中。

回答

我同意你的意见:恐怕我认为这不可能完成。

经过进一步的思考,我意识到在我的xPC系统中,我收到一条编译警告,告诉我我正在使用的块不支持在运行时更改采样时间。这意味着总体上并非不可能

回答

伊恩

在此之前,我所做的只是修改XPC目标背面的寄存器。这很丑,但是xPCTarget首先很丑。

尝试修改线路控制寄存器并直接设置除数-我们所需要的只是串行端口IO地址,我们知道这一点。

无论如何,这都是值得一试的,无论如何,我们都必须这样做。