查看: 1618|回复: 0
打印 上一主题 下一主题

CH375HMX4

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-6 21:33:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接口定义
串口版模块具有三个外部接口:P1 是USB插座,可以直接插入U盘或者通过USB 延
P2 异步串口
RS232 电平
模块的
单片机
P1 端口USB
晶体X2
配置跳线J1
P3 端口
电源输入
跳线J2+J3
下连2 入3 出
上连2 出3 入
U4 稳压7805
用于降压5V
可选件
CH375 芯片
USB-HOST 和
USB-DEVICE
RS232 电平
转换芯片U2
P2 端口
DB9 针

长线连接U 盘,当进行程序升级或者重新配置时应该通过USB 对连线连接计算机的USB
端口。P2 是DB9 插针(可以改为插孔,但是引脚号将发生变化),用于连接单片机系统。
P3 是电源输入选择跳线或者电源输入端口。
当P3 的2 脚与3 脚短路时(上连),模块的电源从串口P2 的第9 脚输入正电源,串
口P2 的第5 脚同时作为信号地和电源地。当P3 的2 脚与3 脚断开时(不连),模块的电
源从端口P3 输入,2 脚正电源,1 脚电源地。
模块的实际工作电压为5V,如果外部输入的电源电压为5V,那么可以去掉稳压芯片
U4 并短接原U4 的1 脚(输入)和3 脚(输出)。如果外部输入的电源电压大于5V,那么
必须使用稳压芯片U4 降压,可以接受的外部电源的输入电压为7.5V 到20V 之间。外部
输入的电源电流不宜小于100mA,并且应该接有电源退耦电容,容量不小于200uF。
端口P2 提供异步串口,用于连接单片机系统,P2 的引脚定义默认情况下是:第5
脚为信号地及电源地,第9 脚为正电源(当从P3 输入电源时该引脚无定义),第2 脚为
串行输入SIN,第3 脚为串行输出SOUT,其余引脚无定义。在此默认情况下与计算机的
串口相连接时,应该使用两头都为DB9 插孔的交叉串口线。
跳线J2 和J3 用于设定端口P2 的第2 脚与第3 脚是否交换,默认情况下跳线的1脚
与2 脚短路(下连);如果跳线是2 脚与3 脚短路(上连),那么端口P2 的引脚重新定义
为第2 脚为串口输出SOUT,第3 脚为串行输入SIN。
端口P2 的异步串口默认情况下使用RS232 电平,如果去掉RS232 电平转换芯片U2
并在PCB 上短接原U2 的12 脚与13 脚、11 脚与14 脚,那么端口P2 使用TTL 电平。一般
情况下,RS232 电平比TTL 电平更适宜较远距离的传输,但是在RS232 电平的情况下,串
口通讯波特率不宜大于115200bps,而在使用TTL 电平并且连线较短的情况下,串口通讯
波特率可以高于115200bps。使用TTL 电平时,串行输入SIN 具有弱上拉电阻,串行输出
SOUT 为带弱上拉电阻的开漏输出,长距离通讯时建议额外加上拉电阻。
4、接口协议
串口版模块使用标准版模块的三线制串口通讯协议。
单片机系统与模块之间需要连接SIN 和SOUT 两根信号线及公共地线,单片机系统通
过串口发送两个同步码字节(57H、ABH)作为执行命令包的启动信号,实现与模块的命
令同步。在通过串口输入两个同步码字节时,模块会检查串口数据输入超时,如果连续
两个数据字节之间的间隔大于串口输入超时时间,则模块将放弃该同步码及命令包。
模块的串口是1 位起始位、8 位数据位、1位停止位的异步串口,串口的通讯波特率
可以在功能配置时设定,如果未设定那么默认是4800bps(与晶体X2 的频率有关),单片
机系统可以根据需要通过CMD_BaudRate 命令设定更高的波特率。如果在功能配置时选择
检查串口超时,那么在通过串口输入命令包时,模块会检查串口数据输入超时,如果连
续两个数据字节之间的间隔大于串口输入超时时间,则模块将放弃该命令包。
基本操作步骤是,单片机系统将命令包,包括命令码、后续参数长度(因为各命令
码所需要的参数不等长)和参数写给模块,并通知其启动操作,模块执行完成后向单片
机返回状态包,包括操作状态码及可选的操作结果。注意,数据流模式的文件读写命令
总是不返回状态包。
因为接口操作看起来比较复杂,所以实际过程可以参考随模块一起提供的几个示例
程序,直接用其中的ExecCommand 子程序就可以了,不必理解下面的接口步骤说明。
串口方式的操作步骤是(请参考示例程序中的ExecCommand 子程序):

① 基本概念:串口通过双向异步串口交换数据,为了防止将命令当成数据,或者将
数据当成命令,在单片机系统与模块之间应该采取同步措施,方法是单片机通过
串口发送两个同步码字节作为启动信号,用于通知模块“命令码开始发送”。
② 单片机系统按以下顺序从串口向模块输出:两个同步码字节(用于通知模块“命
令码开始发送”)、命令码、后续的参数的长度、以及可选的参数。有些命令不需
要任何参数,那么参数的长度就应该是0。
③ 模块接收到两个同步码字节后,从串口依次接收命令码及可选的参数,然后分析
命令码并执行。如果同个同步码字节间隔超过20mS 则该命令包被丢弃。
④ 对于以字节为单位的文件数据块读写操作请跳过此步骤,对于以扇区为单位的文
件数据块读写操作还应该有以下步骤,每读写一个扇区的数据,以下过程就会重
复8 次,每次传输64 字节的数据,共8 次可以传输一个扇区的数据。
如果是CMD_FileRead 读数据块命令,模块通过串口输出请求读取数据的状态码
USB_INT_DISK_READ,状态码输出完成后,模块从串口依次输出64 字节的数
据。单片机系统应该在收到状态码后,再从串口连续接收64 字节的数据块。
如果是CMD_FileWrite 写数据块命令,模块通过串口输出请求写入数据的状态码
USB_INT_DISK_WRITE,状态码输出完成后,模块等待从串口输入数据。单片
机系统应该在收到状态码后,从串口连续输出64 字节的数据块。
如果模块在数据读写过程中检测到错误,那么模块通过串口输出读写数据块失败
重试状态码USB_INT_DISK_RETRY,状态码输出完成后,模块从串口依次输出
两字节的数据。单片机系统应该在收到状态码后,再从串口连续接收两字节
的数据。这两字节是一个16 位的数据,指定需要回改指针的字节数,大端时
高字节在前,小端时低字节在前。用户端程序接收到USB_INT_DISK_RETRY
状态码后,应该根据该16 位数据回改文件数据缓冲区指针,以便重新发送或
接收数据。
⑤ 模块执行完成,通过串口输出操作状态码,通知单片机系统命令操作完成。在状
态码输出完成后,如果状态码为操作成功ERR_SUCCESS,那么模块还从串口依次
输出后续的结果数据的长度、以及可选的结果数据。有些命令执行后没有结果数
据返回,那么结果数据的长度就会是0。
⑥ 单片机系统从串口收到状态码后,如果是操作成功,还可以从串口获得可选的结
果数据。到此,一个命令包的执行过程结束。
⑦ 单片机系统根据需要可以转到步骤②发出下一个操作命令。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表