You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AT+VCID=2指令的CallerID返回值及Conexant CX930xx调制解调器模拟咨询

AT+VCID=2 未格式化来电显示返回格式及Conexant CX930xx来电模拟方案

一、AT+VCID=2的未格式化Caller ID返回内容

当设置AT+VCID=2时,调制解调器会返回原始FSK(频移键控)来电显示帧数据,不会生成DATE=/TIME=这类格式化键值对,直接输出符合Bellcore(北美标准)或ETSI(欧洲标准)的原始消息帧。

以Bellcore标准为例,典型返回格式如下:

RING\r\n
*010812345678#\r\n
\r\n

各段含义:

  • *:帧起始符
  • 01:消息类型(01代表来电号码)
  • 08:后续数据长度(此处对应8位号码)
  • 12345678:实际来电号码
  • #:帧结束符

如果是来电姓名信息,消息类型会变为02,示例:

RING\r\n
*0206JOHNSON#\r\n
\r\n

实际场景中,号码和姓名帧可能合并或分开发送,取决于运营商的FSK数据格式。

二、模拟Conexant CX930xx来电的实现方案

1. Arduino模拟实现

利用Arduino的串口(硬件/软件串口)模拟调制解调器的来电数据输出,步骤如下:

硬件准备

  • Arduino开发板(Uno/Nano均可)
  • USB数据线(或USB转TTL模块,用于软件串口连接)

代码示例(支持VCID=1/VCID=2两种格式)

#include <SoftwareSerial.h>

// 模拟调制解调器的软件串口,引脚可自定义
SoftwareSerial modemSerial(2, 3); // RX, TX

void setup() {
  Serial.begin(9600); // 电脑调试串口
  modemSerial.begin(9600); // 模拟调制解调器串口,波特率9600,8N1
}

void loop() {
  // 每10秒自动触发一次模拟来电
  static unsigned long lastRingTime = 0;
  if (millis() - lastRingTime > 10000) {
    lastRingTime = millis();
    // 可切换调用sendVCID1()或sendVCID2()
    sendVCID1();
    // sendVCID2();
  }
}

// 发送VCID=1格式化来电数据
void sendVCID1() {
  modemSerial.println("RING");
  modemSerial.println("DATE=0920");
  modemSerial.println("TIME=1645");
  modemSerial.println("NMBR=13900139000");
  modemSerial.println("NAME=HOME CALL");
  modemSerial.println(); // 空行分隔来电数据
}

// 发送VCID=2原始FSK来电数据
void sendVCID2() {
  modemSerial.println("RING");
  modemSerial.println("*011113900139000#"); // 号码帧:类型01,长度11,号码13900139000
  modemSerial.println("*0209HOME CALL#"); // 姓名帧:类型02,长度9,姓名HOME CALL
  modemSerial.println();
}

使用说明

  • 上传代码到Arduino后,电脑端打开串口助手,连接对应串口(硬件串口直接连USB,软件串口需外接USB转TTL到指定引脚)
  • 串口参数设置为9600波特率、8位数据位、1位停止位、无校验(8N1)
  • 每10秒Arduino会自动发送模拟来电数据,也可修改代码添加按键触发逻辑。

2. 虚拟串口工具模拟实现

无需硬件,用虚拟串口工具配合串口调试助手即可完成:

步骤

  1. 安装虚拟串口工具(如Virtual Serial Port Driver),创建一对虚拟串口(例如COM3和COM4)
  2. 打开串口调试助手,连接其中一个串口(如COM3),设置波特率9600、8N1
  3. 你的Caller ID应用工具连接另一串口(COM4)
  4. 在串口调试助手中手动发送对应格式数据:
    • VCID=1格式:
      RING
      DATE=0920
      TIME=1645
      NMBR=13900139000
      NAME=HOME CALL
      
      
    • VCID=2格式:
      RING
      *011113900139000#
      *0209HOME CALL#
      
      
    发送时需勾选“发送新行”(对应\r\n),或手动添加换行符。

内容的提问来源于stack exchange,提问作者Dimitrios Desyllas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:06:09