哪有modem AT集以及相关代码

tokens 2002-06-10 02:58:08
我要找这方面的资料,但是太少了,只下了一本书,国图格式的,难看得要命,而且对AT指令介绍的不多。
在哪可以找到这方面的书,有源代码就更好了。谢谢!
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tokens 2002-06-11
  • 打赏
  • 举报
回复
Behard,你发给我的东西不错,但我给你的回信被退回来了。
再次谢谢!
tokens 2002-06-10
  • 打赏
  • 举报
回复
Cbfan:分不会少的了,谢谢你!!
另外,你给出的标准AT集是不是完整的?我可是要按这个来做的。手头上一点资料也没有。。另外有代码供参考吗?
Cbfan 2002-06-10
  • 打赏
  • 举报
回复
高级 AT 命令

命令
描述

&Cn 数据载波检测选项 在调制解调器收到远程调制解调器发送的载波信号时,调制解调器将数据载波检测 (DCD) 发送至您的计算机。 AT&Cn 控制 DCD 选项。
参数:n = 0, 1

n = 0 不管是否检测到载波信号,DCD 信号一直存在。

n = 1 DCD 在检测到载波时开启;而在未检测到载波时关闭 (默认设置)。

&Dn 数据终端就绪选项 在您的计算机准备与调制解调器交换信号时,计算机向调制解调器发送数据终端就绪 (DTR) 信号。 AT&Dn 控制 DTR 选项。
参数:n = 0, 1, 2, 3

n = 0 忽略 DTR,视为开启状态。

n = 1 如果调制解调器处于在线方式时未检测到 DTR,将进入命令方式,发出 OK 结果码并保持连接状态。

n = 2 如果调制解调器处于在线方式时,未检测到 DTR,调制解调器将挂断 (默认设置)。

n = 3 调制解调器在检测到 DTR 从 On 过渡到 Off 时重置。

&F 装入工厂的默认值。 AT&F 将 S 寄存器和命令重置为工厂默认值。
注:在语音方式下,您必须在命令行单独发出此命令,而不得发其它命令。

&Gn V.22bis 保护音频选项。 AT&Gn 确定在高频带方式 (应答方式) 下传输数据时,如有保护音频将发送何种保护音频。
注:此命令只可用于 V.22 and V.22bis 方式下,不得用于北美洲。

参数:n = 0 - 2

n = 0 无保护音频 (默认值)

n = 1 550-Hz 保护音频

n = 2 1800-Hz 保护音频

&Kn 本地流控制选项。 AT&Kn 确定流控制选项。
参数:n = 0, 3, 4

n = 0 禁用流控制

n = 3 启用 RTS/CTS 流控制 (默认值)

n = 4 启用 XON/XOFF 流控制

&Mn 异步通信方式
参数:n = 0

n = 0 异步方式 (默认值)

&Qn 异步通信方式
参数:n= 0, 5, 6

n = 0 在异步方式、带缓冲模式下通信,与 \N0 相同。

n = 5 在错误控制方式、带缓冲模式下通信,与 \N3 相同 (默认)

n = 6 在异步方式、带缓冲模式下通信,与 \N0 相同。

&Sn 数据设置就绪选项 在您的调制解调器准备与计算机交换信号时,调制解调器发送数据设置就绪 (DSR) 信号。 AT&Sn 选择 DSR 操作。
参数:n = 0, 1

n = 0 DSR 始终打开 (默认值)

n = 1 DSR 在建立连接时打开,而在连接结束时关闭。

&Tn 测试命令选择。 AT&Tn 选择八个诊断测试命令中的其中一个。
参数:n = 0, 1, 3, 6

n = 0 终止正在进行的测试

n = 1 启动本地模拟回路。 此测试验证调制解调器操作和调制解调器与计算机的连接, 必须在调制解调器断开的方式下才能进行此测试。

n = 3 本地数字回路测试

n = 6 远程数字回路测试 此测试验证本地调制解调器操作、通信链路和远程调制解调器。 要正确测试,两个调制解调器必须在线,且禁用错误控制功能。 。

&V 查看当前配置 AT&V 显示 S 寄存器的当前配置和命令。
单击此处查看配置显示范例。

&W 存储当前配置。 &W 将某些命令选项和S 寄存器的值存入非易失性存储器中。 可在输入 ATZ 命令或开机重新设置时恢复此配置文件 。
&Zn=x 存储电话号码。 &Zn 命令可在调制解调器非易失性存储器中存储四个拨号字符串供以后拨号。 命令格式为 &Zn= "存储的号码",在此 n 指号码可能写入其中的 0-3 位置。 拨号字符串可以长达 40 个字符。 ATDS=n 用存储在 n 处的字符串进行拨号。
\Jn 调节每秒钟传输的位数。 AT\Jn 命令确定调制解调器协商的连接速度是否强迫将计算机的速率调至调制解调器的速率。
n = 0 缓冲模式。 由 \Nn 命令选择错误控制方式 (默认设置)。

\Kn 设置中断控制。 AT\Kn 命令确定调制解调器处于在线方式时如何处理从计算机中收到的中断信号。
n=5 调制解调器有序地随已传输的数据、未破坏和未加急的数据将中断发送至远程的调制解调器 (默认设置)。

\Nn 错误控制方式。 AT\Nn 选择调制解调器在发送和接收数据时使用的错误控制类型。
参数:n = 0 - 4

n = 0 缓冲模式,无错误控制 (与 &Q6 相同)

n = 1 直接方式

n = 2 MNP 或未连接。 这就是所知的 MNP 依赖模式。

n = 3 V.42、MNP、或缓冲模式 (与 &Q5 相同)。这就是所知的 V.42/MNP 自动依赖模式 (默认设置)。

n = 4 V.42 或未连接

\Qn 本地流选项。
参数:n = 0, 1, 3

n = 0 禁用流控制

n = 1 XON/XOFF 软件流控制,与 &K4 相同。

n = 3 计算机的 RTS/CTS 协议,与 &K3 相同 (默认设置)

\Vn 协议结果码。 AT\Vn 命令选择显示协议连接
参数:n = 0, 1

n = 0 禁用附加于调制解调器速率的协议结果码

n = 1 启用附加于调制解调器速率的协议结果码 (默认设置)

-Cn 数据呼叫音 数据呼叫音是一种频率为 130Hz 的音调,其步调为响 0.5 秒 停2秒。 此音调由 ITU V.25 指定,便于区分远程数据/传真/语音。
参数:n = 0, 1

n = 0 禁用数据呼叫音 (默认设置)

n = 1 启用数据呼叫音

注:在某些国家,AT-Cn 命令将返回 OK 信息,但不影响呼叫音。

注:默认值随国家而有所不同。

%B 查看黑名单中的数字。 如果黑名单生效,AT%B 显示在前两个小时内尝试呼叫失败的次数列表。
注:在某些国家此命令返回 ERROR (错误) 信息。

%Cn 数据压缩控制。 AT%Cn 命令确定 V.42bis 和 MNP 5 级数据压缩操作。 在线方式时对此命令所作的更改直到 首先连接断开时才生效。
参数:n = 0, 1

n = 0 禁用 V.42bis/MNP5; 无数据压缩

n = 1 启用 V.42bis/MNP5; 启用数据压缩 (默认设置)

制解调器的结果码
  您的调制解调器可将信息和呼叫的结果码发送至您的计算机并显示在显示器上。结果码告诉您调制解调器的状态或响应调制解调器所收到的命令。

  您可以使用 ATVn 命令以数字方式显示 (如下所示用数码列表示) 或以字符串方式显示 (列在结果码列中) 查看结果码。您也可以使用 ATQn 命令打开或关闭结果码。

  用于 56K 方式的结果码显示在其它结果码之后, 此结果码在某些调制解调器中不可用。

数码 结果码 定义
0 OK 已执行命令行
1 CONNECT 调制解调器已接通
2 RING 检测到响铃信号
3 NO CARRIER 丢失或未检测到载波
4 ERROR 无效的命令
5 CONNECT 1200 EC 以 1200 bps 速率建立连接
6 NO DIAL TONE 未检测到拨号音
7 BUSY 检测到忙音
8 NO ANSWER 无静音应答
10 CONNECT 2400 EC 以 2400 bps 的速率建立连接
11 CONNECT 4800 EC 以 4800 bps 的速率建立连接
12 CONNECT 9600 EC 以 9600 bps 的速率建立连接
13 CONNECT 14400 EC 以 14400 bps 的速率建立连接
14 CONNECT 19200 EC 以 19200 bps 的速率建立连接
24 CONNECT 7200 EC 以 7200 bps 的速率建立连接
25 CONNECT 12000 EC 以 12000 bps 的速率建立连接
86 CONNECT 16800 EC 以 16800 bps 的速率建立连接
40 CONNECT 300 EC 以 300 bps 的速率建立连接
55 CONNECT 21600 EC 以 21600 bps 的速率建立连接
56 CONNECT 2400 EC 以 24000 bps 的速率建立连接
57 CONNECT 26400 EC 以 26400 bps 的速率建立连接
58 CONNECT 28800 EC 以 28800 bps 的速率建立连接
59 CONNECT 31200 EC 以 31200 bps 的速率建立连接
60 CONNECT 33600 EC 以 33600 bps 的速率建立连接
88 DELAYED 所拨的号码已延迟
用于 56K 模式的结果码
数码 结果码 定义
70 CONNECT 32000 EC 以 32000 bps, 56K 的速率建立连接
71 CONNECT 34000 EC 以 34000 bps, 56K 的速率建立连接
72 CONNECT 36000 EC 以 36000 bps, 56K 的速率建立连接
73 CONNECT 38000 EC 以 38000 bps, 56K 的速率建立连接
74 CONNECT 40000 EC 以 40000 bps, 56K 的速率建立连接
75 CONNECT 42000 EC 以 42000 bps, 56K 的速率建立连接
76 CONNECT 44000 EC 以 44000 bps, 56K 的速率建立连接
77 CONNECT 46000 EC 以 46000 bps, 56K 的速率建立连接
78 CONNECT 48000 EC 以 48000 bps, 56K 的速率建立连接
79 CONNECT 50000 EC 以 50000 bps, 56K 的速率建立连接
80 CONNECT 52000 EC 以 52000 bps, 56K 的速率建立连接
81 CONNECT 54000 EC 以 54000 bps, 56K 的速率建立连接
82 CONNECT 56000 EC 以 56000 bps, 56K 的速率建立连接
83 CONNECT 58000 EC 以 58000 bps, 56K 的速率建立连接
84 CONNECT 60000 EC 以 60000 bps, 56K 的速率建立连接
注:仅在启用扩展的结果码配置时才出现 EC。视您使用的错误控制方式而定, "EC" 用以下符号之一进行替换。
V42bis--V.42 错误控制和 V.42bis 数据压缩

V42--V.42 只有错误控制

MNP5--MNP 4 级错误控制和 MNP 5 级数据压缩

MNP4--MNP 4 级只有错误控制

NoEC--无错误控制协议

Cbfan 2002-06-10
  • 打赏
  • 举报
回复
记得给分呦~~~







AT 命令

命令 描述
AT 注意代码 AT 是命令行的字首,告诉调制解调器要输入命令或命令序列。它执行除 A/ (重复) 和 +++ (换码) 之外的所有命令。单独输入 AT,如果调制解调器准备接收命令,则调制解调器返回 OK 或 0 信息。
参数:无

A/ 重复上一命令。 A/ 命令使调制解调器重新执行上一行的命令,例如,重新拨号。 上一次执行的命令一直保留在命令缓冲区中,直到输入 AT 命令或电源已关闭为止。 这些操作将清除缓冲区并使 A/ 命令无效,因为没有要重新执行的命令。您无需输入 <cr> 或 AT,因为它们与上一命令一起驻留在命令缓冲区内。
参数:无

A 应答命令。 A 命令使调制解调器无需等待响铃则可应答呼叫。 此命令在手动应答呼叫或与以始发方式与另一调制解调器建立直接连接时有用。
同一命令行中 A 之后的所有命令将被忽略。

注:此命令在某些国家禁止使用。在这种情况下,ATA 返回错误信息。

参数:无

Bn 通信标准选项。 在 ITU 与 Bell 标准之间作出确定。
参数:n = 0 - 3, 15, 16

n = 0 ITU V.22 使用 1200bps 的传输速率

n = 1,Bell 212 使用 1200 bps 的传输速率 (默认)

n = 2, 3 撤消 ITU V23 反向通道

n = 15 ITU, V.21 使用 300bps 的传输速率

n = 16,103J 使用 300 bps 的传输速率 (默认设置)

Dn 拨号命令。 D 命令使调制解调器拨命令行中 D 后面的号码。在拨号修正符号页面中定义有效的拨号数字和所拨号修正符号。
在脉冲拨号方式下,非数字字符不起作用。

参数:无

注:在某此国家规定在 D 命令之后必须输入电话号码。

En 命令回应。 En 此命令确定调制解调器在命令方式时,您在键盘上输入的字符是否回应到屏幕上(本地回应)。
参数:n = 0, 1

n = 0 关闭本地回应功能

n = 1 启用本地回应功能 (默认)

Hn 挂断控制。 Hn 命令告诉调制解调器是挂断以断开呼叫还是摘机以占用电话线。
参数:n = 0, 1

n = 0 调制解调器挂断 (hang up) (默认值)

n = 1 调制解调器摘机

注:H1 命令在某些国家禁止使用。 在这种情况下,ATH1 返回错误信息。

In 要求调制解调器的识别号 (ID)。 In 命令询问调制解调器的产品识别号、ROM 校验和或 ROM 校验和的状态。
参数:n = 0, 1, 2, 3, 4, 5, 9

n = 0, 3 返回调制解调器默认的速率和控制器的硬件版本

n = 1 计算 ROM 校验和并显示校验和 (例如,12AB)

n = 2 检查 ROM 、计算并验证校验和及显示 OK 或 ERROR (错误) 信息。

n = 4 返回数据泵的硬件版本

n = 5 返回调制解调器板的 ID: 软件版本、硬件版本和国家代码

n = 9 返回国家代码。

Ln 设置扬声器音量。ATLn 在传真和数据通信时设置扬声器的音量为低、中或高。
参数:n = 0 - 3

n = 0, 1 低音量

n = 2 中音量 (默认设置)

n = 3 高音量

注:要完全关闭扬声器,请使用 MO 命令。

Mn 扬声器音量控制选项。Mn 命令控制传真和数据通信时扬声器是打开还是关闭。
参数:n = 0 - 3

n = 0 扬声器一直关闭

n = 1 调制解调器在检测到载波信号之前,扬声器始终打开。(默认值)

n = 2 在调制解调器摘机时,扬声器始终打开。

n = 3 在拨号后扬声器始终打开,直到调制解调器检测到载波信号为止,拨号时除外。

Nn 调制握手。Nn 命令控制本地调制解调器在与速率不同的远程调制解调器连接时是否执行协商的握手 。
参数:n = 0, 1

n = 0 在始发呼叫或应答呼叫时,仅以 S37 寄存器和 ATB 命令指定的通信标准下进行数字交换。

n = 1 在始发呼叫或应答呼叫时,仅以 S37 寄存器和 ATB 命令指定的速率开始握手。 在握手期间, 速率可能会回落。(默认设置)

On 在线状态。 On 命令强迫调制解调器进入在线方式。
参数:n = 0, 1, 3

n = 0 进入在线状态

n = 1 在返回在线数据方式前初始化均衡重新排定序列。

n = 3 在返回在线数据方式前,进行速率的重新协商

注:在使用 +++ 换码命令换至命令方式后执行该命令将返回在线方式。

P 脉冲拨号。 P 命令设置脉冲拨号方式。 所有的呼叫将停留在脉冲方式,直到使用 T 命令选择音频拨号为止。 此命令也可用作拨号修正符。
参数:无

注:某些国家不可以使用脉冲拨号。 在这些国家 P 命令将被忽略。

Qn 抑制结果码。 Qn 启用调制解调器发送结果码。
参数:n = 0, 1

n = 0 启用结果码 (默认设置)

n = 1 禁用返回结果码。(静噪)

Sr=n 写入 S 寄存器。 Sr=n 将 r 寄存器的值设置为 n 。 用此命令可修改这些寄存器中的内容。
参数:无

范围: r = 0 - 27, 29, 31 - 33, 35, 37, 89 (寄存器号)

n = 0 - 255 (取值)

切记:如果向保留的寄存器或只读寄存器中写入内容可能会导致无法预料 的结果。 请参阅 S 寄存器命令参考以获得完整的寄存器列表。

Sn? 读取寄存器。 Sn? 命令 报告 n 指定的寄存器的值,该值可以是任一有效的S 寄存器号。
参数:无

范围: n = 0 - 27, 29, 31 - 33, 35, 37, 89

注:取值以十进制的格式报告。 要获得位映射寄存器的值,请将十进制转为二进制。

T 音频拨号。 T 命令将拨号方式设为音频拨号。 默认设置为音频拨号。 此命令也可用作拨号修正符。
参数:无

Vn 结果码的形式。Vn 命令确定调制解调器返回的结果码的类型。
参数:n = 0, 1

n = 0 以数字形式发送结果码。(简短的形式或数字)

n = 1 以文本的形式发送结果码。(长格式或冗余) (默认设置)

Xn 设置结果码和呼叫进行 Xn 命令选择结果码集和拨号功能。 Vn 命令确定结果码是以文字方式还是数字方式发送, 亦请参阅结果代码。
扩展的结果码: 如果启用此项,调制解调器显示基本的结果码、连接信息、调制解调器的数据传输速率、调制解调器错误校正的表示和数据压缩设置。 如果禁用此项,只显示 OK, CONNECT, RING, NO CARRIER 和 ERROR。

拨号音检测: 如果启用此项,调制解调器仅在检测到拨号音时拨号; 如果 10 秒钟内未检测到拨号音,将断开呼叫。 如果禁用此项, 调制解调器不管是否检测到拨号音均将拨号。 您可选择调制解调器在 S6 寄存器中拨号前需等待的秒数。

忙音检测: 如果启用此项,调制解调器检查忙音。 如果禁用此项,调制解调器忽略忙音。

参数:n = 0 - 4, 7

n = 0 禁用扩展结果码、拨号音检测和忙音检测。

n = 1 启用扩展结果码; 禁用拨号音检测和忙音检测。

n = 2 启用扩展结果码和拨号音检测; 禁用忙音检测。

n = 3 启用扩展结果码和忙音检测。 禁用拨号音检测。

n = 4 启用扩展结果码、拨号音检测和忙音检测 (默认设置)。

n = 7 禁用扩展结果码; 启用拨号音检测和忙音检测。

Z 恢复已保存的配置文件。 此命令指示调制解调器挂断并恢复由上一次 &W 命令保存的文件。
+++ 换码序列。在 S2 寄存器中的字符集连续三次快速发送至调制解调器 (参阅 S12 寄存器), 调制解调器转换至命令状态。 换码字符的默认值为 +。 在说明文档指示您输入 +++ 时,连续三次在 S2 寄存器中快速输入字符集。 请勿在换码序列之前加上 AT 命令,并且输入后不要按 Enter 键。
注:要返回在线状态,请使用 ATO 命令。

tokens 2002-06-10
  • 打赏
  • 举报
回复
不知道为什么,系统一直忙,收不下信,不过分我先给你记着了,明后天给。
也希望其他朋友也给点信息,我会加分的。
Behard 2002-06-10
  • 打赏
  • 举报
回复
sending
tokens 2002-06-10
  • 打赏
  • 举报
回复
谢谢Behard,能不能给我更多的资料,我可是查了很多了,找不到代码。
因为我要做一个modem simulator.
tokens@163.com
Behard 2002-06-10
  • 打赏
  • 举报
回复
这些东西在网上也是很多的
AT //check momem rturn OK is OK
RING //check is ringing return RING is ringing
ATA //answer return CONNECT is OK
ATDTNumber(phone No.) //拨号 return CONNECT is OK

int Initialize ( void )
{
long timeout ;
char *rece_temp ;

timeout = ReadTime () + 2000L ;

comm_putc ( 'A' ) ;
comm_putc ( 'T' ) ;
comm_putc ( '\r' ) ;

while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "OK" )) != 0 )
// if ( strncmp ( rece_buffer , "OK" , 2 ) == 0 )
{
// printf ( "Initialize is OK!\n" ) ;
return 1 ;
}
}
}
// printf ( "Initialize is Failed!\n" ) ;
return 0 ;
}

int Dial ( void )
{
long timeout = ReadTime () + 60000L ;
char *rece_temp ;
// char *

inter_no = read_no = 0 ;
// j = 0 ;
comm_putc ( 'A' ) ; //Can use SendCommand()
comm_putc ( 'T' ) ;
comm_putc ( 'D' ) ;
comm_putc ( 'T' ) ;
SendCommand ( srf618w_telephone ) ;
// printf("%s",srf618w_telephone) ;
// comm_putc ( teleno ) ;
comm_putc ( '\r' ) ;

while ( ReadTime () < timeout )
{
// if ( strncmp ( rece_buffer , "CONNECT" , 7 ) == 0 )
// if ( rece_buffer )
// if ( sendexit() ) { Hangup() ; return -1 ;}
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "CONNECT" )) != 0 )
{
// printf ( "%s\n" , rece_temp ) ;
// printf ( " Connect is OK!\n" ) ;
// rece_buffer[0] = 0 ;
return 1 ;
}
if ( ( rece_temp = strstr ( inter_buffer, "NO CARRIER" )) != 0 )
{
// printf ( "No Carrier!\n" ) ;
return 0 ;
}
}
}
return 0 ;
}

int Answer ( void )
{
long timeout = ReadTime () + 60000L ;
char *rece_temp ;

inter_no = read_no = 0 ;
// j = 0 ;
comm_putc ( 'A' ) ;
comm_putc ( 'T' ) ;
comm_putc ( 'A' ) ;
comm_putc ( '\r' ) ;

while ( ReadTime () < timeout )
{
/* if ( sendexit() )
{
Hangup () ;
return -1 ;
}
*/ if ( bufferOK )
{
// if ( strncmp ( rece_buffer , "CONNECT" , 7 ) == 0 )
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "CONNECT" )) != 0 )
{
// printf ( "%s\n" , inter_buffer ) ;
// printf ( "Connect is OK!\n" ) ;
return 1 ;
}
if ( ( rece_temp = strstr ( inter_buffer, "NO CARRIER" )) != 0 )
{
// printf ( "No Carrier!\n" ) ;
return 0 ;
}
}
}
return 0 ;
}

int Ring ( void )
{
char *rece_temp ;

if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "RING" )) != 0 )
{
// printf ( "%s\n" , inter_buffer ) ;
return 1 ;
}
}
else
return 0 ;
}

int Hangup ( void )
{
long timeout = ReadTime () + 1250 ;
char *rece_temp ;

while ( ReadTime() < timeout )
;
// WriteString ( "+++" , 3 , 1000 ) ;
SendCommand ( "+++" ) ;

timeout = ReadTime() + 1250 ;

while ( ReadTime() < timeout )
;
// WriteString ( "ATH0\r" , 5 , 1000 ) ;
timeout = ReadTime() + 10000L ;
SendCommand ( "ATH0\r" ) ;

while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
// if ( strncmp ( rece_buffer , "OK" , 2 ) == 0 )
if ( ( rece_temp = strstr ( inter_buffer , "OK" )) != 0 )
{
// printf ( "Hang is OK!\n" ) ;
return 1 ;
}
}
}

return 0 ;
}
书名:《Visual C++串口通信技术详解》(机械工业出版社.李景峰.杨丽娜.潘恒) PDF格式扫描版,全书分为16章,共368页。2010年6月出版。 内容简介 本书介绍如何利用Visual C++成开发环境进行串口通信程序开发。书中精选来自工程实践的应用范例,主要涵盖串口通信的理论基础、Visual c++成开发环境简介、MSComm控件串口编程、Windows API串口编程、TAPI通信编程、串口实现双机互连、串口调试精灵、串口控制Modem设备、串口控制单片机、串口控制PLC、串口控制射频卡、串口控制GPS模块、串口控制云台摄像头、智能报警系统、语音自动应答系统以及USB转RS-232串口实例等。 本书通俗易懂,内容翔实,层次分明,注重知识的系统性、针对性和先进性,注重基础理论与工程实践之间的相互联系。书中实例的源代码均在随书光盘中提供,以方便读者学习和使用。 本书可作为具有一定Visual c++使用基础的读者开发串口通信程序的参考书,也可作为科研单位、高等院校相关专业技术人员的参考书 目录 前言 第一篇 基础理论和基本方法 第1章 串口通信理论基础 1.1 接口技术 1.1.1 接口的定义 1.1.2 接口的基本功能 1.1.3 接口的基本控制方式 1.1.4 并行接口技术 1.1.5 串行接口技术 1.2 RS-232C标准 1.2.1 RS-232C电气特性 1.2.2 RS-232C连接器机械特性 1.2.3 RS-232C的接口信号 1.2.4 RS-232C的通信方式 1.3 RS-422/RS-485标准 1.3.1 RS-422简介 1.3.2 RS-485简介 1.3.3 RS-422/RS-485网络安装注意点 1.4 SPI总线标准 1.4.1 SPI总线原理 1.4.2 SPI总线特点 1.5 USB总线标准 1.5.1 USB总线总体结构 1.5.2 USB数据传输逻辑结构 1.5.3 传输类型 1.6 使用串口通信的典型外设 1.6.1 Modem 1.6.2 传真机 1.6.3 GPS接收机 1.7 实践拓展 第2章 Visual C++成开发环境简介 2.1 面向对象程序设计与C++语言 2.1.1 面向对象程序设计概述 2.1.2 C++语言基础 2.1.3 C++的面向对象特性 2.2 Visual C++6.0成开发环境 2.2.1 visual C++6.0开发环境 2.2.2 项目与项目工作区 2.2.3 应用程序向导App Wizard 2.2.4 成开发基本操作 2.2.5 联机帮助文件 2.3 MFC应用程序的创建 2.4 实践拓展 第3章 MSComm控件串口编程 3.1 MSComm控件简介 3.1.1 MSComm控件描述 3.1.2 MsComm控件常用属性 3.1.3 MSComm控件其他属性 3.1.4 MSComm控件的事件 3.2 MSComm控件编程步骤 3.2.1 加载MSComm控件到项目 3.2.2 初始化并打开串行端口 3.2.3 捕获串行端口事件 3.2.4 串行端口数据读写 3.2.5 关闭串行端口 3.2.6 程序发布问题 3.3 使用MsComm控件实现串口通信接收 3.4 实践拓展 第4章 Windows API串口编程 4.1 windows API串行编程概述 4.1.1 串行编程的数据结构 4.1.2 串行编程的Win32API函数 4.2 win32 API串口通信编程方式 4.2.1 打开串行端口 4.2.2 配置串行端口 4.2.3 读写串行端口 4.2.4 关闭串行端口 4.3 基于win32API函数实现串口通信发送程序 4.4 实践拓展 第5章 TAPI串口编程 5.1 TAPI概述 5.1.1 TAPI的含义 5.1.2 TAPI的体系结构 5.1.3 TAPI的服务类型 5.2 windows TAPI 2.x函数 5.2.1 Windows TAPI编程流程 5.2.2 TAPI 2.x常用函数 5.3 使用TAPI实现电话拨打程序 5.4 实践拓展 第二篇 串口编程基础应用 第6章 串口实现双机互连 6.1 概述 6.2 通信协议及实现方案 6.2.1 异步串行通信 6.2.2 同步串行通信 6.3 实现代码分析 6.3.1 程序主体设计及关键模块分析 6.3.2 使用API通信 6.4 实践拓展 第7章 串口调试精灵 7.1 串口调试工具实现的基本要求 7.2 串口调试精灵的编程实现 7.2.1 软件功能及流程设计 7.2.2 程序界面分析 7.2.3 编程实现 7.2.4 使用测试 7.3 实践拓展 第8章 串口控制Modem设备 8.1 Modem接口 8.1.1 Modem简介 8.1.2 Modem工作流程 8.1.3 Modem通信方案 8.2 AT指令简介 8.2.1 Modem工作状态 8.2.2 AT指令 8.3 使用Modem实现远程通信 8.3.1 使用单片机和Modem通信 8.3.2 使用PC和Modem通信 8.4 实践拓展 第9章 串口控制单片机 9.1 串口通信硬件设计 9.1.1 MCS.5 1系列单片机的串口原理 9.1.2 常用的接口芯片介绍 9.1.3 接口电路设计 9.2 串口通信参数设置 9.2.1 波特率设置 9.2.2 奇偶校验位的使用方法 9.2.3 通信协议约定 9.3 系统总体设计 9.4 单片机的串口编程方法 9.5 计算机端通信界面设计 9.6 计算机端程序设计 9.6.1 头文件引用及变量声明 9.6.2 控件加载及控件属性设置 9.6.3 发出读数据请求 9.6.4 接收数据的处理 9.6.5 关闭串口 9.7 实践拓展 第10章 串口控制PLC 10.1 PLC概述 10.1.1 PLC基本结构 10.1.2 PLC串行接口规范 10.1.3 通信协议 10.2 PLC串口通信 10.2.1 计算机与PLC之间的通信流程 10.2.2 PLC通信编程 10.3 实现代码分析 10.3.1 界面设计 10.3.2 程序设计核心代码 10.4 实践拓展 第11章 串口控制射频卡 11.1 射频卡概述 11.1.1 射频卡原理 11.1.2 射频卡分类及应用 11.1.3 典型射频卡模块 11.2 射频卡应用设计 11.2.1 读写器设计 11.2.2 基于射频卡模块的设计 11.3 实现代码分析 11.3.1 界面设计 11.3.2 串口通信程序设计 11.4 实践拓展 第12章 串口控制GPS模块 12.1 GPS系统的基础知识 12.1.1 GPS定位原理 12.1.2 GPS系统 12.2 LEA-4H型GPS模块的性能及其应用 12.3 NMEA-0183协议分析 12.3.1 NMEA-0183协议的定义 12.3.2 NMEA-0183数据信息 12.4 主机与GPS模块串口通信的程序实现 12.4.1 MSComm控件属性 12.4.2 添加MSComm控件 12.4.3 添加串口事件消息处理函数OnComm() 12.4.4 数据的接收与提取 12.4.5 实验结果及数据的显示 12.5 实践拓展 第三篇 串口编程高级应用 第13章 串口控制云台摄像头 13.1 云台摄像头 13.1.1 云台简介 13.1.2 摄像头及控制电路 13.2 云台控制协议 13.3 控制程序分析 13.3.1 添加控件 13.3.2 设置界面 13.3.3 主控程序 13.3.4 初始化 13.3.5 配置按钮 13.3.6 通信参数的设置 13.3.7 云台控制命令 13.3.8 旋转控制按钮和镜头控制按钮 13.4 实践拓展 第14章 智能报警系统 14.1 系统描述 14.2 系统分析与设计 14.3 关键技术 14.3.1 建立安防信息数据库 14.3.2 端口设置和定时读取I/O端口数据 14.3.3 判断是否有触发事件 14.3.4 启动并口控制的报警设备 14.3.5 根据设置拨打报警电话 14.3.6 安防日志管理 14.3.7 I/O端口通信 14.4 实现代码分析 14.4.1 创建项目 14.4.2 界面设计与实现 14.4.3 加入数据库支持 14.4.4 关键程序类的实现 14.5 实践拓展 第15章 语音自动应答系统 15.1 功能描述 15.1.1 TAPI介绍 15.1.2 功能介绍 15.1.3 实验要求 15.2 设计流程实现 15.2.1 程序设计流程图 15.2.2 TAPI 3.0方法介绍 15.2.3 串处理分析介绍 15.3 具体功能实现 15.3.1 程序主界面 15.3.2 参数配置 15.3.3 选择语音界面 15.4 实践拓展 第16章 USB转RS-232串口实例 16.1 USB总线技术简介 16.1.1 USB的特点 16.1.2 USB的体系结构 16.1.3 USB的电气特性 16.1.4 USB的数据通信协议 16.2 功能描述 16.3 USB总线转换芯片CH341简介 16.3.1 CH341异步串口工作方式 16.3.2 CH341功能配置 16.4 USB转RS-232桥接器硬件设计 16.5 驱动程序安装 16.6 实践拓展 附录 Modem AT命令 参考文献
目录 第1章 Delphi网络编程基础知识 1.1 TCP/IP 1.1.1 TCP/IP结构 1.1.2 应用层协议 1.1.3 传输层协议 1.1.4 网络层协议 1.1.5 RFC和标准简单服务 1.2 TCP/IP基本概念 1.2.1 IP地址 1.2.2 地址解析 1.2.3 域名系统 1.2.4 数据包的封装和分用 1.2.5 端口号 1.3 网络编程接口(Winsock API) 1.4 Winsock常用函数介绍 1.4.1 基本Socket函数 1.4.2 数据库函数 1.4.3 Winsock规范提供的扩展函数 1.5 Delphi Socket网络组件介绍 1.5.1 ClientSocket组件 1.5.2 ServerSocket组件 第2章 基本网络编程实例 2.1 获取IP地址 2.1.1 利用系统工具获得IP地址 2.1.2 使用GetHostByName函数来获取IP 2.1.3 使用WSAAsyncGetHostByName函数获取IP地址 2.1.4 多IP情况的处理 2.1.5 关于IP地址和实际的地址的区别 2.2 获取子网掩码 2.2.1 Windows NT系统中获取子网掩码 2.2.2 Window 9x系统中获取子网掩码 2.3 获取计算机名 2.3.1 获取和设置本机主机名 2.3.2 获取远程主机名称 2.4 网络连接情况检测 2.4.1 使用WinInet高级函数库函数检测网络状态 2.4.2 通过读取系统状态参数检测网络状态 2.5 获取DNS信息 2.5.1 Windows NT系统中获取DNS信息 2.5.2 Windows 9x系统中获取DNS信息 2.6 网卡信息的获取 2.6.1 使用GUID获取网卡地址 2.6.2 NetBIOS来获得MAC地址 2.6.3 使用RPC方式获得MAC地址 第3章 FTP高级编程 3.1 FTP简介 3.2 安装设置FTP服务器 3.3 使用Windows内置FTP程序 3.4 深入FTP协议 3.4.1 FTP命令大全 3.4.2 FTP工作模式 3.5 开发FTP程序的方法 3.6 API开发高级FTP客户端程序 3.6.1 建立工程项目 3.6.2 关键代码分析 3.7 开发FTP服务器 3.7.1 建立工程项目 3.7.2 关键代码分析 第4章 HTTP高级开发 4.1 HTTP协议基本知识 4.1.1 HTTP背景 4.1.2 HTTP的内容 4.1.3 消息(Message) 4.1.4 请求(Request) 4.1.5 响应(Response) 4.1.6 访问认证 4.1.7 URL编码 4.1.8 HTTP协议的应用 4.2 开发文件下载程序 4.2.1 建立工程项目 4.2.2 关键代码分析 4.2.3 技术要点分析 4.3 HTTP API高级开发 4.3.1 控件介绍 4.3.2 关键代码分析 4.3.3 关键技术分析 4.4 Web Server高级开发 4.4.1 Web Server的基本理论 4.4.2 建立工程项目 4.4.3 关键代码分析 4.4.4 Web服务器的扩充 4.5 Web代理服务器的实现 4.5.1 代理服务器介绍 4.5.2 IE中使用代理服务器设置 4.5.3 建立工程项目 4.5.4 关键代码分析 第5章 Telnet高级编程 5.1 Telnet简介 5.2 使用Windows的Telnet程序登录远程服务器 5.3 深入Telnet协议 5.3.1 NVT ASCII字符 5.3.2 Telnet命令 5.3.3 协商选项 5.3.4 子协商选项 5.3.5 Telnet操作方式 5.4 BBS客户端高级开发 5.4.1 建立工程项目 5.4.2 关键代码分析 5.5 Telnet代理服务程序实现 5.5.1 建立工程项目与关键代码分析 第6章 E-mail协议及高级编程 6.1 SMTP及发送电子邮件 6.1.1 SMTP的模型描述 6.1.2 SMTP的会话过程 6.2 POP3与接收电子邮件 6.2.1 POP3的模型描述 6.2.2 POP3的会话过程 6.3 信件结构详述 6.3.1 RFC822信件的格式和内容 6.3.2 构造符合RFC822的信件 6.3.3 RFC822信件的语法分析 6.4 MIME编码解码与发送附件 6.4.1 RFC822的局限 6.4.2 UUENCODE编码与解码 6.4.3 MIME及其编码 6.4.4 构造MIME信件 6.4.5 MIME信件的语法分析 6.5 E-mail乱码 6.5.1 乱码的常见形式及形成原因 6.5.2 避免乱码的方法 6.6 E-mail程序开发 6.6.1 建立工程项目 6.6.2 关键代码分析 第7章 网络监控、流量统计与资源搜索 7.1 网络流量统计 7.1.1 建立工程项目 7.1.2 关键代码分析 7.2 网络连接监控 7.2.1 建立工程项目 7.2.2 关键代码分析 7.3 网络配置和统计的使用实例 7.3.1 建立工程项目 7.3.2 关键代码分析 7.4 局域网资源搜索 7.4.1 建立工程项目 7.4.2 关键代码分析 7.4.3 关键技术分析 第8章 Modem串口通信编程 8.1 Modem的基础知识 8.1.1 Modem状态 8.1.2 AT命令 8.1.3 S寄存器 8.1.4 Modem返回信息码 8.2 SPComm通信控件 8.2.1 SPComm控件的属性 8.2.2 SPComm控件的方法 8.2.3 SPComm控件的事件 8.3 Windows串口通信编程 8.3.1 Windows通信API和串口通信 8.3.2 打开和关闭串口 8.3.3 串口配置和串口属性 8.3.4 读写串口 8.3.5 通信事件 8.3.6 设备控制命令 8.4 ASCII控制字符 8.5 Modem文件传输应用实例 8.5.1 建立工程项目 8.5.2 关键代码分析 第9章 拨号网络编程 9.1 RAS客户机 9.2 建立拨号连接 9.3 使用RAS(远程访问服务) 9.3.1 用系统电话簿进行拨号 9.3.2 电话簿条目的管理 9.3.3 在程序中创建拨号连接 9.3.4 状态通知 9.4 RAS高级开发拨号程序 9.4.1 创建工程项目 9.4.2 关键代码分析 第10章 传真高级编程 10.1 传真编程的基础知识 10.1.1 T.30传真通信协议 10.1.2 HDLC信息包 10.1.3 传真字段 10.1.4 成串信息包 10.1.5 同步线路控制 10.1.6 传真的五个阶段介绍 10.2 传真Modem的分类 10.2.1 传真分类 10.2.2 一类传真Modem 10.2.3 二类传真Modem 10.3 传真会话实例描述 10.3.1 一类传真的发送实例 10.3.2 一类传真的接收实例 10.3.3 二类传真的发送实例 10.3.4 二类传真的接收实例 10.4 DIS/DCS位映像 10.4.1 向后兼容性和可扩展性 10.4.2 新的 FCF 10.4.3 最小性能合 10.4.4 DIS/DCS信息包的逐位解释 10.5 T.4传真图像协议 10.5.1 分辨率 10.5.2 文件尺寸 10.6 传真编码 10.6.1 一维编码(改进型哈夫曼编码) 10.6.2 二维编码(READ编码) 10.6.3 编码方式综述 10.6.4 行终码 10.6.5 页编码 10.7 传真高级编程 10.7.1 创建工程项目 10.7.2 关键代码分析

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧