IO模块是一种用于连接计算机系统或控制系统与外部设备之间的接口模块。数字IO模块用于处理二进制信号的输入和输出,它们可以接收和发送数字信号,通常用于控制逻辑开关、触发器和其他数字设备。模拟IO模块用于处理连续型信号的输入和输出,它们可以接收和发送模拟信号,通常用于测量和控制温度、压力、电压等连续性参数。
本文主要介绍同星带IO的设备以及在TSMaster软件中的IO功能操作流程展开,本文整体介绍如下:
1.同星DIO的支持硬件
2. TSMaster 的IO使用流程
3. TSMaster 的IO参数设置
4. TSMaster的IO小程序函数
5. 应用案例:PWM输出唤醒ECU
1.同星DIO的支持硬件
同星TC系列如TC1014Pro、TC1018Pro、TC1034Pro+、TC1038 Pro和TC1055 Pro 具备IO功能,此外Tlog系列如Tlog1002、Tlog1004和Tlog1038也具备IO功能。具体IO通道数量如下:
设备型号 |
DIDO通道数量 |
AIAO通道数量 |
TC1014 Pro |
4 |
3 |
TC1018 Pro |
4 |
3 |
TC1034 Pro+ |
4 |
3 |
TC1038 Pro |
4 |
3 |
TC1055 Pro |
4 |
3 |
Tlog1038 |
4 |
3 |
Tlog1004 |
2:DI,2:DO |
1 |
Tlog1002 |
3:DI,2:DO |
0 |
1.1 同星IO设备的技术参数
- DI的输入电压范围为0-40V,基准电压Vref为0-3.3V,阈值范围的上限VAH=(330+499*Vref)/1098,阈值范围下限VAL=0.455*Vref。
- DO的输出电压:低电平 0V,高电平 5V/12V(不支持带负载使用),输出模式为漏极开路,推挽式;带过压保护,输出频率最高200kHz。
- AI的输入电压范围为0-39V,输入阻抗为3.4MΩ,分辨率12bit。
- AO输出电压范围为0-30V,带过压保护,分辨率12bit
注:部分型号的参数可能存在出入,以对应设备最新的产品手册为准。
1.2 IO接口的DO输出模式
同星IO产品的DO输出模式可设置不同模式,支持分为Push-Pull推挽输出模式和Open-Drain开漏输出模式,同时开漏输出细分为Open-Drain-Pull,Open-Drain-Push模式。
Push-Pull推挽输出的特点,具有驱动能力强,无静态功能耗,可以实现高速切换,适用于PWM和时钟信号输出。
对于Open-Drain开漏输出模式,输出端呈开路状态,输出高电平时需依赖外部上拉电阻,具体有电平兼容性,可以通过外部上拉连接到不同的电压输出,并支持多设备的线与功能,具体特性如下:
特性 |
Push-Pull |
Open-Drain |
Open-Drain-Pull |
Open-Drain-Push |
---|---|---|---|---|
高电平驱动源 |
内部PMOS |
外部上拉 |
外部上拉 |
内部PMOS |
低电平驱动 |
内部NMOS |
外部下拉 |
内部NMOS |
外部下拉 |
总线”线与”支持 |
否 |
无 |
是 |
无 |
电平转换能力 |
无 |
无 |
有 |
无 |
典型驱动电流 |
<50mA |
无 |
<50mA |
<50mA |
速度 |
快(ns级) |
快(ns级) |
快(ns级) |
快(ns级) |
2.TSMaster 的IO的使用流程
同星带IO通道的硬件,可以使用TSMaster软件进行通道选择与IO配置,如下是TSMaster上的配置操作流程。
Step1: 连接带IO的设备到电脑后,在【硬件】-【通道选择】中选择配置所需的DO/DI或AI/AO的通道数量,如图1。
Step2: 然后在【硬件】-【总线硬件】,可以选择相应 IO类型进行输入输出的配置。针对不同的IO类型,可以设置数字或模块输入的采样率,数字输出的模式、电压和类型等,如图2。
Step3: 配置完成后,可以在【仿真】-【系统变量】-【内部变量】中查看系统生成的用于观测和控制的IO系统变量。同时TSMaster提供小程序控制DO输出的函数,用于DO的程序控制,如图3。
3.TSMaster 的IO参数设置
3.1 数字输入参数
采样率(Hz): 可选0.001、0.01、0.1、1、10、25、100,如图4。
当数字输入DI引脚无电压输入时,DI系统变量的值为0;当DI引脚输入电压超过阈值,DI系统变量的值变为1,如图5。
3.2 数字输出参数
数字输出的参数设置与设备类型相关,分为TC系列和Tlog记录仪两种。其中TC系列的数字输出可设置普通电平输出和PWM波输出。Tlog记录仪的数字输出支持设置普通电平输出。
3.2.1 TC系列数字输出参数
TC系列的数字输出,以TC1055Pro为例,支持设置输出电压等级、输出模式和输出类型,如图6。
电压等级Voltage Level: 可选5V/12V
输出模式Output Mode:
- Push-Pull:可以主动输出高电平和低电平,适合高速和大电流的驱动。
- Open-Drain:只能输出低电平,高电平需要外部拉电阻实现,适合多设备共享信号线。
- Open-Drain-Pull:与Open-Drain类似,强调了外部拉高电阻的使用。
- Open-Drain-Push:可以根据需求通过外部电路增强输出驱动能力
输出类型Output Type:
General Output: 普通电平输出
PWM Output: 输出PWM波
3.2.2 Tlog系列数字输出参数
Tlog系列的数字输出,支持设置周期性汇报,用于输出状态的回读监测,以Tlog1004为例,如图7。
周期性汇报(Hz):0.001、0.01、0.1、1、10、25、100。
3.3 模拟输入参数
模拟输入的参数,可以设置采样率,以TC1014 Pro为例,如图8。
采样率(Hz):0.001、0.01、0.1、1、10、25、100。
3.4 模拟输出参数
功能正在升级更新,敬请期待。
4.TSMaster的IO小程序函数
TSMaster小程序提供了两个控制DO输出的函数,分别是:普通电平输出函数和PWM输出函数。
其中,普通电平输出函数如下:
项目 |
描述 |
【函数名】 |
tsdio_set_vlevel_output_async |
【参数】 |
两个: AChn, 为IO通道索引 AIOStatus, 是电压输出状态,1为高电平,0为低电平。 |
【示例】 |
com.tsdio_set_vlevel_output_async(CH1, 1); //通道1设置为高电平输出 |
PWM输出函数如下:
项目 |
描述 |
【函数名】 |
tsdio_set_pwm_output_async |
【参数】 |
三个: AChn, 为IO通道索引 ADuty, 是占空比值,比如设置为20,代表设置占空比为20%。 AFrequency, 频率值,比如设置为100,代表频率为100Hz。 |
【示例】 |
com.tsdio_set_pwm_output_async(CH1, 20, 1000); //通道1,设置占空比为20,频率是1000Hz。 |
5.应用案例:PWM输出唤醒ECU
汽车上有不少ECU采用PWM信号进行唤醒,比如有如下唤醒场景:
- 车身控制器唤醒:光照传感器检测到光线突变,然后输出1kHz和70%占空比的PWM波,唤醒BCM控制器开启车灯;
- 电池管理系统报警:当从模块监测到电池电压超阈值时,发送固定脉宽PWM信号,唤醒主控BMS ECU进行保护处理。
以下介绍如何基于TC1055Pro的IO模块和TSMaster配合,输出PWM波唤醒主控ECU。
Step1:查阅ECU的唤醒说明,明确唤醒ECU的时机和IO信号类型,需要在ECU上电后,接收到占空比为20%,频率为1Hz的PWM波,即可唤醒ECU。
Step2:使用DO通道和ECU的唤醒信号接入端连接,将TC1055Pro连接至PC。
Step3:在TSMaster通道选择菜单中,设置DO的应用程序通道与硬件通道,如图9。
Step4:在硬件配置中,设置DO的输出电压为5V,输出模式为Push-Pull,输出类型为PWM。如图10。
Step5:创建一个C代码编辑器,并在按键事件中创建两个按键事件,分别对应开始输出PWM和停止输出PWM。
按键事件A,对应开始输出PWM,如图11:
按键事件B,对应停止输出PWM,如图12:
Step6:编译C小程序,启动TSMaster工程,按下键盘A进行开始输出PWM给ECU,同时使用示波器观测输出PWM波形,如图13。
按下键盘B停止输出PWM,使用示波器观测输出PWM波形,如图14。
👍