1
CH384 中文手册(一)
PCIE 总线四串口及打印口芯片 CH384
手册(一)
版本: 1
http://wch.cn
1、概述
CH384 是 PCI-Express 总线的四串口及打印口芯片,包含四个兼容 16C550 或者 16C750 的异步串
口和一个 EPP/ECP 增强型双向并口,并且还可以外加 CH438 芯片扩展最多达 24 个串口。异步串口提
供收发独立的 256 字节 FIFO 缓冲器,支持 IrDA 红外编解码,支持最高 8Mbps 的通讯波特率,可以用
于 PCIE 总线的 RS232 串口扩展、带自动硬件速率控制的 PCIE 高速串口、串口组网、RS485 通讯、IrDA
通讯、并口/打印口扩展等。下图为其一般应用框图。
TXD0/RTS0/DTR0
串口 0
RXD0/CTS0/DSR0/RI0/DCD0
TXD1/RTS1/DTR1
RXD1/CTS1/DSR1/RI1/DCD1
CH384 芯片
PCIE
总线
PCIE 信号
4 串口
和打印口
串口 1
TXD2/RTS2/DTR2
RXD2/CTS2/DSR2/RI2/DCD2
串口 2
TXD3/RTS3/DTR3
RXD3/CTS3/DSR3/RI3/DCD3
串口 3
D0-D7
STB/AFD/INIT/SIN
并口
打印口
BUSY/ACK/PE/SELT/ERR
2、特点
2.1. 概述
●
●
●
●
●
●
●
同一芯片可配置为 PCIE 总线的四通道串口加并口/打印口或者四通道串口加扩展多串口。
提供两线串行主机接口,可以挂接类似 24C0X 的串口 EEPROM 器件用于存储非易失数据。
可以在 EEPROM 器件中设定 PCIE 板卡的设备标识(Vendor ID,Device ID,Class Code 等)
。
驱动程序支持 Windows 98/ME/NT4.0/2000/XP/Vista/Win7/Server2003 以及 Linux。
3.3V 电源电压,I/O 引脚支持 5V 耐压,支持串口低功耗睡眠模式。
芯片功能相当于 CH367 芯片加 CH438 芯片,提供 8 串口、16 串口、28 串口等应用方案。
LQFP-100 无铅封装,兼容 RoHS。
2.2. 串口
●
●
●
●
完全独立的 4 个异步串口,兼容 16C550、16C552、16C554 及 16C750 并且有所增强。
支持 5、6、7 或者 8 个数据位以及 1 或者 2 个停止位。
支持奇、偶、无校验、空白 0、标志 1 等校验方式。
可编程通讯波特率,支持 115200bps 以及最高达 8Mbps 的通讯波特率。
2
CH384 中文手册(一)
●
●
●
●
●
●
●
内置 256 字节的 FIFO 先进先出缓冲器,支持 4 个 FIFO 触发级。
支持 MODEM 调制解调器信号 CTS、DSR、RI、DCD、DTR、RTS,可转成 RS232 电平。
支持硬件流控制信号 CTS 和 RTS 自动握手和自动传输速率控制,兼容 TL16C550C。
支持串口帧错误检测、支持 Break 线路间隔检测。
支持全双工和半双工串口通讯。
串口 0 内置 SIR 红外线编解码器,支持 2400bps 到 115200bps 波特率的 IrDA 红外通讯。
支持外接 CH438 芯片扩展另外 8 到 24 个异步串口,实现 PCIE 八串口、PCIE 二十八串口。
2.3. 并口
● 支持 SPP、Nibble、Byte、PS/2、EPP、ECP 等 IEEE1284 并口/打印口工作方式。
● 支持双向数据传输,支持最高达 1M 字节/每秒的传输速度。
3、封装
4 串口+并口
有关 4 串口+扩展多串口的应用说明和引脚图请参考手册(二)CH384DS2.PDF。
封装形式
塑体宽度
引脚间距
封装说明
LQFP-100
14mm x 14mm
0.5mm
19.7mil
标准 LQFP100 贴片
4、引脚
4.1. 电源线
引脚号
7,8,26,50,72,87
10,48,70
13,20
97,2,3,9,14,15,17,23,27,
37,49,61,71,77,86,96,99
引脚名称
VCC33
VCC18
VCC18A
类型
电源
电源
电源
引脚说明
3.3V I/O 电源
1.8V 内核电源
1.8V 传输电源
GND
电源
公共接地端
订货型号
CH384L
3
CH384 中文手册(一)
4.2. PCIE 总线信号线
引脚号
6
11,12
18,19
22,21
5
引脚名称
PERST#
PECKP/PECKN
PERP/PERN
PETP/PETN
WAKE#
类型
输入
输入
PCIE 输入
PCIE 输出
开漏输出
引脚说明
系统复位信号线,低电平有效
系统参考时钟差分输入
PCIE 接收器差分信号输入
PCIE 发送器差分信号输出
总线唤醒输出,低电平有效,未用到则可以不连接
4.3. 串口 0~串口 3 信号线
引脚号
42/60
55/47
41/59
54/46
40/58
53/45
39/57
52/44
38/56
51/43
80/83
88/91
79/82
85/90
78/81
84/89
76/75
74/73
引脚名称
CTS0/CTS1
CTS2/CTS3
DSR0/DSR1
DSR2/DSR3
RI0/RI1
RI2/RI3
DCD0/DCD1
DCD2/DCD3
RXD0/RXD1
RXD2/RXD3
DTR0/DTR1
DTR2/DTR3
RTS0/RTS1
RTS2/RTS3
TXD0/TXD1
TXD2/TXD3
OUT0/OUT1
TNOW0/TNOW1
类型
引脚说明
输入
MODEM 信号,清除发送,低电平有效,内置上拉电阻
输入
MODEM 信号,数据装置就绪,低电平有效,内置上拉电阻
输入
MODEM 信号,振铃指示,低电平有效,内置上拉电阻
输入
MODEM 信号,载波检测,低电平有效,内置上拉电阻
输入
异步串行数据输入,内置上拉电阻
输出
MODEM 信号,数据终端就绪,低电平有效
输出
MODEM 信号,请求发送,低电平有效
输出
异步串行数据输出
输出
输出
MODEM 控制输出信号(MCR 寄存器的 OUT1)
,低电平有效
串口正在发送状态输出(半双工收发切换)
,高电平有效
类型
三态双向
输出
输出
输出
输出
输入
输入
输入
输入
输入
引脚说明
8 位并行数据输出及输入,内置上拉,接 DATA7~DATA0
数据选通输出,低电平有效,接 STROBE
自动换行输出,低电平有效,接 AUTO-FEED
初始化打印机,低电平有效,接 INIT
选中打印机,低电平有效,接 SELECT-IN
打印机出错,低有效,内置上拉,接 ERROR 或 FAULT
打印机联机,高有效,内置上拉,接 SELECT 或 SELT
打印机缺纸,高有效,内置上拉,接 PEMPTY 或 PERROR
打印机数据接收应答,上升沿有效,内置上拉,接 ACK
打印机正忙,高有效,内置上拉,接 BUSY
4.4. 打印口信号线
引脚号
62-69
92
93
95
94
34
36
35
32
33
引脚名称
D7~D0
STB
AFD
INIT
SIN
ERR
SELT
PE
ACK
BUSY
4.5. 辅助信号线
4
CH384 中文手册(一)
引脚号
16
25
24
引脚名称
RREF
XI
XO
类型
输入
输入
输入输出
28
SCL
输出
29
SDA
30
31
100
98
1
4
SDX
SCS
CKSEL
4S1P#
GPO
RSVD
开漏输出
及输入
三态双向
输出
输入
输入
输出
保留
引脚说明
系统参考电流输入,需要外接 12KΩ电阻到 GND
可选,晶体振荡的输入端,外接晶体及振荡电容
可选,晶体振荡的反相输出端,外接晶体及振荡电容
通用输出,外部配置芯片的时钟输出,
可以外接串行 EEPROM 配置芯片 24CXX 的 SCL 引脚
通用输出及输入,内置上拉电阻,
可以外接串行 EEPROM 配置芯片 24CXX 的 SDA 引脚
通用输出及输入,内置上拉电阻
通用输出
串口时钟频率选择输入,内置上拉电阻
软件识别模式选择输入,内置上拉电阻
通用输出
保留引脚,禁止连接
5、配置
5.1. 全局功能配置
CH384 芯片具有两种主要硬件功能模式:4 串口+并口功能模式,4 串口+扩展多串口功能模式。
两种功能模式下的引脚定义不同,本手册只涉及前者,后者请参考手册(二)CH384DS2.PDF。
CH384 芯片的 4S1P#引脚用于选择软件识别模式:
4S1P#接 VCC33 或者悬空,即 4S1P#=1,则是 4 串口模式(并口/打印口不使用)
;
4S1P#接 GND,即 4S1P#=0,则是 4 串口+打印口模式。
CH384 芯片的 CKSEL 引脚用于选择内部 4 串口的时钟频率:
CKSEL 接 VCC33 或者悬空,即 CKSEL=1,则从 XO 引脚输入时钟,频率由外部晶体决定,且内
部频率系数默认为 1/12 分频,支持再通过 CK2X 或者 CKnS 选择 2 倍频;
CKSEL 接 GND,即 CKSEL=0,则从 XO 引脚输入时钟,频率由外部晶体决定,且内部频率系数
总是强制为 2 倍频;
CKSEL 接 PERST#引脚,即 CKSEL=R,则内部晶体振荡器禁用,而由内部 PLL 提供频率为 125MHz
的时钟,且内部频率系数默认为 1/68 分频,支持再通过 CK2X 或者 CKnS 选择不分频。
5.2. 外部配置芯片
CH384 芯片会在每次开机或者 PCIE 总线复位后检查外部的 24CXX 配置芯片中的数据,如果连接
了配置芯片并且数据有效则自动加载到 CH384 芯片中替换默认的 PCIE 识别信息。
配置芯片 24CXX 是一种 4 脚或者 8 脚封装的非易失串行 EEPROM 存储器,除了向 CH384 提供配置
信息之外,还可以供应用程序自行保存一些其它参数。CH384 支持以下型号的 24CXX 芯片:24C01(A)、
24C02、24C04、24C08、24C16 等。
下表是配置芯片 24CXX 中的数据定义。
字节地址
简称
数据用途说明
默认值
00H
CFG
外部配置芯片有效标志,必须是 54H
54H
01H
FREQ
位 3~位 0 分别用于选择串口 3~串口 0 的内部频率系数
0FFH
03H-02H
RSVD
(保留单元)
0000H
05H-04H
VID
厂商标识:Vendor ID
自定义
07H-06H
DID
设备标识:Device ID
自定义
CH384 中文手册(一)
08H
0BH-09H
0DH-0CH
0FH-0EH
1FH-10H
其它地址
RID
CLS
SVID
SID
RSVD
APP
5
芯片版本:Revision ID
设备类代码:Class Code
子系统厂商标识:Subsystem Vendor ID
子系统标识:Subsystem ID
(保留单元)
用户或应用程序自定义单元
自定义
070005H
自定义
自定义
00H 或 FFH
5.3. 串口内部时钟
CH384 芯片内部具有时钟振荡器,可以通过外接晶体及电容产生串口所需的外部时钟信号。如果
不接晶体和电容,那么将 CKSEL 引脚接 PERST#引脚则可以通过内部 PLL 产生串口所需时钟。
CH384 内部将 XO 引脚的外部时钟信号进行分频或倍频,分别产生各个串口的内部基准时钟。为
了与现有计算机串口的 16C550 芯片兼容,默认的内部时钟频率是 1.8432MHz,对应的最大串口波特
率是 115200bps。CH384 芯片支持多种内部时钟频率,当内部时钟频率加倍时,如果应用软件不变,
那么实际的通讯波特率也加倍,即应用软件设置为 115200bps 的串口实际为 230400bps。
CH384 的串口可以由 CKSEL 引脚或者外部配置芯片中的 CFG/FREQ 标志位选择分频或者倍频系数,
将外部时钟的频率转换为两种内部时钟频率,从而支持更多更大的串口波特率。下表是根据 CKSEL 引
脚、CFG/FREQ 标志位和外部晶体频率产生串口的内部时钟频率和最大串口波特率。表中 CK2X 是各串
口的 IER 寄存器的位 5;表中 CFG 是指外部配置芯片有效标志,CKnS(即 CK0S~CK3S)分别为 FREQ
的位 0~位 3。
前置必要条件
CKSEL=1
CKSEL=1
CKSEL=R
CKSEL=R
CK2X=1 或者
CK2X=0 并且
CK2X=1 或者
CK2X=0 并且
组合选择
CKSEL=0 或者
CFG 无效或 CKnS=1 CFG 有效且 CKnS=0
CFG 无效或 CKnS=1
CFG 有效且 CKnS=0
内部频率系数
1/12 分频
2 倍频
1/68 分频
不分频
外部晶体频率
1.8432MHz
44.2368MHz
22.1184MHz
115.2Kbps
2.7648Mbps
外部晶体频率
1.8432MHz
0.9216MHz
115.2Kbps
外部晶体频率
0.9216MHz
22.1184MHz
11.0592MHz
57.6Kbps
1.3824Mbps
外部晶体频率
36.864MHz
18.432MHz
2.304Mbps
内部 PLL 频率
1.8382MHz
125MHz
125MHz
114.9Kbps
7.8125Mbps
在内部 PLL 方式 1/68 分频下得到的 114.9Kbps 与标准的 115.2Kbps 仅相差 0.27%,可以接受。
6、寄存器
6.1. 基本约定
6.1.1. 属性简写:R=完全只读,W=可读可写,S=只读但可以事先设定,….=省略号。
6.1.2. 数据的数制:如果以 H 结尾则为十六进制数,否则为二进制数。
6.1.3. 数值的通配符以及属性:r=保留(禁止使用)
,x=任意值,….=省略号。
CH384 中文手册(一)
6
6.2. PCIE 配置空间
地址
01H-00H
寄存器名称
VID 厂商标识:Vendor ID
寄存器属性
SSSS
03H-02H
DID 设备标识:Device ID
SSSS
05H-04H
07H-06H
08H
0BH-09H
0FH-0CH
命令寄存器:Command
状态寄存器:Status
芯片版本:Revision ID
设备类代码:Class Code
RRRRRWRRRRRRRWWW
RRRRRRRRRRRRRRRR
SS
SSSSSS
RRRRRRRR
WWWWWWWWWWWWWWWW
WWWWWWWWRRRRRRRR
RRRRRRRR
WWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWRR
RRRR….RRRR
系统复位后默认值
1C00H
4 串口:3470H
4 串口+并口:3450H
4 串口扩 8 串:3853H
4 串口扩 28 串:4353H
0000000000000000
000000000001x000
10H
070005H
00000000H
0000000000000000
0000000000000001
00000008H
0000000000000000
0000000000000001
0000….0000H
SSSS
与 VID 相同
SSSS
与 DID 相同
RRRRRRRR
RR
RRRR….RRRR
RRRRRRRRRRRRRRRR
RRRRRRRRWWWWWWWW
(禁止使用)
00000001H
60H
0000….0000H
0000000000000000
0000000100000000
(禁止使用)
寄存器属性
系统复位后默认值
WW
0FFH
WW
0FFH
WW
0FFH
WW
WW
WW
WW
XXH
XXH
XXH
XXH
RR
00H
(禁止使用)
0FFH
RR
00H
13H-10H
I/O 基址 0:
I/O Base Address 0
17H-14H
1BH-18H
I/O 基址 2:
I/O Base Address 2
2BH-1CH
2DH-2CH
2FH-2EH
子系统厂商标识:
Subsystem Vendor ID
子系统标识:
Subsystem ID
33H-30H
34H
3BH-35H
3FH-3CH
FFFH-40H
中断号和中断引脚等:
Interrupt Line & Pin
保留
6.3. I/O 基址 0 的寄存器
偏移地址
3FH-00H
7FH-40H
BFH-80H
C7H-C0H
CFH-C8H
D7H-D0H
DFH-D8H
E0H
E3H-E1H
E4H
寄存器名称
映射到外扩 0# CH438 芯片的
8 个串口寄存器(8*8 字节)
映射到外扩 1# CH438 芯片的
8 个串口寄存器(8*8 字节)
映射到外扩 2# CH438 芯片的
8 个串口寄存器(8*8 字节)
内部串口 0 的 8 个串口寄存器
内部串口 1 的 8 个串口寄存器
内部串口 2 的 8 个串口寄存器
内部串口 3 的 8 个串口寄存器
映射到外扩 0# CH438 芯片的
中断专用状态寄存器
保留
映射到外扩 1# CH438 芯片的
中断专用状态寄存器
7
CH384 中文手册(一)
E5H
E6H
E7H
E8H
E9H
EAH
EBH
F7H-ECH
F8H
FFH-F9H
保留
映射到外扩 2# CH438 芯片的
中断专用状态寄存器
保留
通用输出寄存器 GPOR
内部中断状态寄存器 IINT
通用输入寄存器 GPIR
外部中断状态寄存器 XINT
保留
控制和状态寄存器 CTRL
保留
(禁止使用)
0FFH
RR
00H
(禁止使用)
WWRRRWWW
RRRRRRRR
RRRRRRRR
RRRRRRWR
(禁止使用)
WRRRRRRR
(禁止使用)
0FFH
00rrr111
0rrr0000
1xxr1rr1
111rrr0r
xxH
1rrxrrrr
xxH
6.4. 寄存器的位
寄存器名称
通用输出寄存器 GPOR
(I/O 基址 0+0E8H 地址)
内部中断状态寄存器 IINT
(I/O 基址 0+0E9H 地址)
通用输入寄存器 GPIR
(I/O 基址 0+0EAH 地址)
外部中断状态寄存器 XINT
(I/O 基址 0+0EBH 地址)
控制和状态寄存器 CTRL
(I/O 基址 0+0F8H 地址)
位址
位0
位1
位2
位6
位7
位0
位1
位2
位3
位7
位0
位3
位5
位6
位7
位1
位5
位6
位7
位4
位7
属性
位的使用说明(默认值)
位值=0
位值=1
W
W
W
W
W
R
R
R
R
R
R
R
R
R
R
W
R
R
R
R
W
设定 SDA 引脚的输出值(1)
设定 SCL 引脚的输出值(1)
设定 SCS 引脚的输出值(1)
设定 SDX 引脚的数据方向(0)
设定 SDX 引脚的输出值(0)
内部串口 0 的中断状态(0)
内部串口 1 的中断状态(0)
内部串口 2 的中断状态(0)
内部串口 3 的中断状态(0)
内部打印口的中断状态(0)
输入 SDA 引脚的状态(1)
输入 INT#引脚的状态(1)
输入 CKSEL 引脚的状态(X)
输入 MDSEL 引脚的状态(X)
输入 SDX 引脚的状态(1)
设定全局中断使能(0)
输入 INT0#引脚的状态(1)
输入 INT1#引脚的状态(1)
输入 INT2#引脚的状态(1)
输入 XO 引脚的状态(X)
设定 GPO 引脚的输出值(1)
低电平
低电平
低电平
输入
低电平
无中断
无中断
无中断
无中断
无中断
低电平
低电平
低电平
低电平
低电平
禁止中断
低电平
低电平
低电平
低电平
低电平
高电平
高电平
高电平
输出
高电平
正在中断
正在中断
正在中断
正在中断
正在中断
高电平
高电平
高电平
高电平
高电平
使能中断
高电平
高电平
高电平
高电平
高电平
6.5. 串口寄存器
CH384 的串口兼容工业标准 16550 或者 16C750 并有所增强,表中标为灰色的寄存器位为增强功
能,并且 FIFO 缓冲器长度扩展为 256 字节,除此之外的寄存器可以参考单串口芯片 16C550 或者双串
口芯片 CH432 或者八串口芯片 CH438 的说明。串口 0 寄存器的实际地址为 I/O 基址 0 先加 0C0H 再加
表中的偏移地址,串口 1 寄存器的实际地址为 I/O 基址 0 先加 0C8H 再加表中的偏移地址,串口 2 寄
存器的实际地址为 I/O 基址 0 先加 0D0H 再加表中的偏移地址,串口 3 寄存器的实际地址为 I/O 基址
0 先加 0D8H 再加表中的偏移地址。各个串口的寄存器都相同。表中 DLAB 为寄存器 LCR 的位 7,X 表
示不关心 DLAB 值,RO 表示寄存器只读,WO 表示寄存器只写,R/W 表示寄存器可读可写。
地
名
DLAB R/W
位7
位6
位5
位4
位3
位2
位1
位0
址
称
8
CH384 中文手册(一)
0
0
1
2
2
3
4
5
6
7
0
1
0 RO RBR
位7
位6
位5
位4
位3
位2
位1
0 WO THR
位7
位6
位5
位4
位3
位2
位1
0 R/W IER RESET LOWPOWER CK2X
0
IEMODEM IELINES IETHRE
X RO IIR FIFOENS FIFOENS TRIG16
0
IID3
IID2
IID1
X WO FCR RECVTG1 RECVTG0 TRIG16
0
0
TFIFORST RFIFORST
X R/W LCR
DLAB
BREAKEN PARMODE1 PARMODE0 PAREN
STOPBIT WORDSZ1
X R/W MCR
HALF
0
AFE
LOOP
OUT2
OUT1
RTS
X RO LSR RFIFOERR TEMT
THRE
BREAKINT FRAMEERR PARERR
OVERR
X RO MSR
DCD
RI
DSR
CTS
△DCD
△RI
△DSR
X R/W SCR
位7
位6
位5
位4
位3
位2
位1
1 R/W DLL
位7
位6
位5
位4
位3
位2
位1
1 R/W DLM 位 15
位 14
位 13
位 12
位 11
位 10
位9
下表是串口寄存器在上电复位或者 PCIE 总线复位或者串口软复位之后的默认值。
寄存器名称
IER
IIR
FCR
LCR
MCR
LSR
MSR
SCR
FIFO
TSR
RSR
其它
位7
0
0
0
0
0
0
DCD
保持
位6
0
0
0
0
0
1
RI
保持
位5
位4
位3
位2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
DSR
CTS
0
0
保持
保持
保持
保持
复位,包括发送 FIFO 和接收 FIFO
复位,TSR 是串口发送移位寄存器
复位,RSR 为串口接收移位寄存器
未定义
位1
0
0
0
0
0
0
0
保持
位0
位0
IERECV
NOINT
FIFOEN
WORDSZ0
DTR
DATARDY
△CTS
位0
位0
位8
位0
0
1
0
0
0
0
0
保持
RBR:接收缓冲寄存器,如果 LSR 的 DATARDY 位为 1 则可以从该寄存器读取接收到的数据。如果 FIFOEN
为 1 则从串口移位寄存器 RSR 接收到的数据首先被存放于接收 FIFO 中,然后通过该寄存器读出。
THR:发送保持寄存器,包括发送 FIFO,用于写入准备发送的数据。如果 FIFOEN 为 1 则写入的数据
首先被存放于发送 FIFO 中,然后通过发送移位寄存器 TSR 逐个输出。
IER:中断使能寄存器,包括增强功能控制位以及串口中断使能。
RESET:该位置 1 则软复位该串口,该位能够自动清 0,无需软件清 0。
LOWPOWER:该位为 1 则关闭该串口的内部基准时钟,从而使该串口进入低功耗状态。
CK2X:
该位为 1 则强制将外部时钟信号 2 倍频后作为串口的内部基准时钟,
并且不受 FREQ 位 CKnS
的控制。
IEMODEM:该位为 1 则允许调制解调器输入状态变化中断。
IELINES:该位为 1 则允许接收线路状态中断。
IETHRE:该位为 1 则允许发送保持寄存器空中断。
IERECV:该位为 1 则允许接收到数据中断。
IIR:中断识别寄存器,用于分析中断源并处理。
FIFOENS:该位为 FIFO 启用状态,为 1 表示已经启用 FIFO。
优先
清中断
IIR 寄存器位
中断类型
中断源
级
方法
IID3 IID2 IID1 NOINT
0
0
0
1
无
没有中断产生
没有中断
0
1
1
0
1
接收线路状态 OVERR、PARERR、FRAMEERR、BREAKINT 读 LSR
0
1
0
0
2
接收数据可用
接收到的字节数达到 FIFO 的触发点
读 RBR
1
1
0
0
2
接收数据超时 超过 4 个数据的时间未收到下一数据
读 RBR
9
CH384 中文手册(一)
0
0
1
0
3
THR 寄存器空
0
0
0
0
4
MODEM 输入变化
发送保持寄存器空,
IETHRE 从 0 变 1 可以重新使能中断
△CTS、△DSR、△RI、△DCD
读 IIR
或写 THR
读 MSR
FCR:先进先出缓冲区 FIFO 控制寄存器,用于使能和复位 FIFO。
TRIG16:该位为 1 则接收 FIFO 的中断和硬件流控制的触发点等同于 16 字节 FIFO 时的触发点。
该位仅在 DLAB 为 1 时允许修改。
RECVTG1 和 RECVTG0:设置接收 FIFO 的中断和硬件流控制的触发点,00 对应 1 个字节,即接收
满 1 个字节产生接收数据可用的中断,并在使能硬件流控制时自动无效 RTS 引脚。
TRIG16
RECVTG1
RECVTG0
触发点
0
0
0
1 字节
0
0
1
32 字节
0
1
0
128 字节
0
1
1
224 字节
1
0
0
1 字节
1
0
1
4 字节
1
1
0
8 字节
1
1
1
14 字节
TFIFORST:该位置 1 则清空发送 FIFO 中的数据(不含 TSR)
,该位能够自动清 0,无需软件清 0。
RFIFORST:该位置 1 则清空接收 FIFO 中的数据(不含 RSR)
,该位能够自动清 0,无需软件清 0。
FIFOEN:该位为 1 则启用 FIFO,该位清 0 则禁用 FIFO,禁用 FIFO 后为 16C450 兼容模式,相当
于 FIFO 只有一个字节(RECVTG1=0、RECVTG0=0、FIFOEN=1)
,建议启用 FIFO。
LCR:线路控制寄存器,用于控制串口通讯的格式。
DLAB:该位为除数锁存器存取使能,为 1 时才能存取 DLL 和 DLM,为 0 时才能存取 RBR/THR/IER。
BREAKEN:该位为 1 则强制产生 BREAK 线路间隔。
PARMODE1 和 PARMODE0:当 PAREN 为 1 时设置奇偶校验位的格式:00 则奇校验,01 则偶校验,10
则标志位(MARK,置 1)
,11 则空白位(SPACE,清 0)
。
PAREN:该位为 1 则允许发送时产生和接收时校验奇偶校验位,为 0 则无奇偶校验位。
STOPBIT:该位为 1 则两个停止位,为 0 则一个停止位。
WORDSZ1 和 WORDSZ0:设置字长度,00 则 5 个数据位,01 则 6 个数据位,10 则 7 个数据位,11
则 8 个数据位。
MCR:调制解调器 MODEM 控制寄存器,用于控制 MODEM 输出。
HALF:该位为 1 则进入半双工收发模式,发送优先,不发送时为接收。半双工模式下 DTR 引脚总
是输出正在发送状态 TNOW,可以用于控制 RS485 收发切换。该位仅在 DLAB 为 1 时允许修改。
AFE:该位为 1 则允许 CTS 和 RTS 硬件自动流控制。如果 AFE 为 1,那么仅在检测到 CTS 引脚输
入有效(低电平有效)时串口才继续发送下一个数据,否则暂停串口发送,当 AFE 为 1 时的
CTS 输入状态变化不会产生 MODEM 状态中断。如果 AFE 为 1 并且 RTS 为 1,那么当接收 FIFO
空时,串口会自动有效 RTS 引脚(低电平有效)
,直到接收的字节数达到 FIFO 的触发点时,
串口才自动无效 RTS 引脚,并能够在接收 FIFO 空时再次有效 RTS 引脚。使用硬件自动带率控
制,可将己方的 CTS 引脚接到对方的 RTS 引脚,并将己方的 RTS 引脚送到对方的 CTS 引脚。
LOOP:该位为 1 则使能内部回路的测试模式。在内部回路的测试模式下,串口所有对外输出引脚
均为无效状态,TXD 内部返回到 RXD(即 TSR 的输出内部返回到 RSR 的输入)
,RTS 内部返回到
CTS,DTR 内部返回到 DSR,OUT1 内部返回到 RI,OUT2 内部返回到 DCD。
OUT2:该位为 1 则允许该串口的中断请求输出,否则该串口不产生实际中断请求。
OUT1:该位为用户可定义 MODEM 控制位,在 4 串口+扩展串口模式下没有连接实际输出引脚,在
4 串口+并口模式下,串口 0 和串口 1 的对应输出引脚为 OUT0 和 OUT1 引脚。
RTS:该位为 1 则 RTS 引脚输出有效(低电平有效)
,否则 RTS 引脚输出无效。
DTR:该位为 1 则 DTR 引脚输出有效(低电平有效)
,否则 DTR 引脚输出无效。
LSR:线路状态寄存器,用于查询方式分析串口状态。
RFIFOERR:该位为 1 表示在接收 FIFO 中存在至少一个 PARERR、FRAMEERR 或 BREAKINT 错误。
CH384 中文手册(一)
10
TEMT:该位为 1 表示发送保持寄存器 THR 和发送移位寄存器 TSR 全空。
THRE:该位为 1 表示发送保持寄存器 THR 空。
BREAKINT:该位为 1 表示检测到 BREAK 线路间隔。
FRAMEERR:该位为 1 表示正在从接收 FIFO 中读取的数据的帧错误,缺少有效的停止位。
PARERR:该位为 1 表示正在从接收 FIFO 中读取的数据的奇偶校验错。
OVERR:该位为 1 表示接收 FIFO 缓冲区溢出。
DATARDY:该位为 1 表示接收 FIFO 中有接收到的数据,读取 FIFO 中所有数据后,该位自动清 0。
MSR:调制解调器 MODEM 状态寄存器,用于查询 MODEM 状态。
DCD:该位是 DCD 引脚的位反,为 1 表示 DCD 引脚有效(低电平有效)
。
RI:该位是 RI 引脚的位反,为 1 表示 RI 引脚有效(低电平有效)
。
DSR:该位是 DSR 引脚的位反,为 1 表示 DSR 引脚有效(低电平有效)
。
CTS:该位是 CTS 引脚的位反,为 1 表示 CTS 引脚有效(低电平有效)
。
△DCD:该位为 1 表示 DCD 引脚输入状态发生过变化。
△RI:该位为 1 表示 RI 引脚输入状态发生过变化。
△DSR:该位为 1 表示 DSR 引脚输入状态发生过变化。
△CTS:该位为 1 表示 CTS 引脚输入状态发生过变化。
SCR:用户可定义寄存器。
DLL 和 DLM:波特率除数锁存器,DLL 是低字节,DLM 是高字节,两者组成的 16 位除数用于由 16 位计
数器构成的串口波特率产生器。该除数 = 串口内部基准时钟 / 16 / 所需通讯波特率。如果串口
内部基准时钟为 1.8432MHz,所需波特率为 9600bps,则除数=1843200/16/9600=12。
6.6. 并口寄存器
CH384 的并口兼容 SPP 标准打印口并有所增强,表中标为灰色的寄存器位为增强功能。并口寄存
器的实际地址为 I/O 基址 2 加表中的偏移地址。CH384 的并口主要有 4 种工作方式:SPP(含 Nibble、
Byte 和 PS/2)
、EPP 和 ECP,表中方式 ALL 是指所有方式,ADV 是指 EPP 和 ECP,RO 表示寄存器只读,
WO 表示寄存器只写,R/W 表示寄存器可读可写。
地
名
方式 R/W
位7
位6
位5
位4
位3
位2
位1
位0
址
称
0 SPP RO PIR
D7IN
D6IN
D5IN
D4IN
D3IN
D2IN
D1IN
D0IN
0 ADV RO PIR
IBD7
IBD6
IBD5
IBD4
IBD3
IBD2
IBD1
IBD0
0 ALL WO PDR D7OUT
D6OUT
D5OUT
D4OUT
D3OUT
D2OUT
D1OUT
D0OUT
1 SPP RO PSR
!INTFLAG
1
1
!BUSY
ACK
PE
SELT
ERR
1 EPP RO PSR
1
1
!EPPREQ
1 ECP RO PSR
!ECPICMD !ECPIBF !ECPOUT
2 ALL R/W PCR
1
1
DIRIN
INTEN
!SIN
INIT
!AFD
!STB
3 SPP R/W PXR
0
0
0
0
0
0
0
0
3 EPP R/W PXR
0
0
0
0
EPPADDR MODEEPP
0
0
3 ECP R/W PXR
0
0
0
ECPINTF
0
0
ECPDIRIN MODEECP
下表是并口寄存器在上电复位或者 PCIE 总线复位之后的默认值。
寄存器名称
位7
位6
位5
位4
位3
位2
位1
位0
PIR
1
1
1
1
1
1
1
1
PDR
0
0
0
0
0
0
0
0
PSR
!BUSY
ACK
PE
SELT
ERR
1
1
1
PCR
1
1
0
0
0
0
0
0
PXR
0
0
0
0
0
0
0
0
其它
未定义
PIR:数据输入寄存器,在 SPP 方式下用于从 D7-D0 引脚输入实时数据,在 EPP 或 ECP 方式下为已经
锁存的输入/上传缓冲区中的数据。EPP 方式下,该数据在 AFD 引脚或者 SIN 引脚输出低电平时被
CH384 中文手册(一)
11
锁存;ECP 方式下,该数据在 ACK 引脚低电平时被锁存,同时还锁存!ECPICMD。
PDR:数据输出寄存器,用于写入准备输出/下传的数据。在 SPP 方式下写入该寄存器将会直接输出到
D7-D0 引脚;在 EPP 或 ECP 方式下写入该寄存器将会自动执行数据输出或者数据输入的握手协议。
PSR:状态寄存器,用于查询输入引脚和操作执行状态。
!BUSY:该位是 SPP、EPP 和 ECP 方式下输入引脚 BUSY 的状态的反值,当 BUSY 引脚输入高电平时,
该位为 0。
ACK:该位是 SPP、EPP 和 ECP 方式下输入引脚 ACK 的状态。
PE:该位是 SPP、EPP 和 ECP 方式下输入引脚 PE 的状态。
SELT:该位是 SPP、EPP 和 ECP 方式下输入引脚 SELT 的状态。
ERR:该位是 SPP、EPP 和 ECP 方式下输入引脚 ERR 的状态。
!INTFLAG:该位是 SPP 方式下的中断标志的反值,当 ACK 引脚上升沿产生中断标志时,该位自动
清 0,读取 PSR 寄存器后该位自动置 1。
!EPPREQ:该位是 EPP 方式下存取操作进行标志的反值,当写入 PDR 寄存器时,该位自动清 0,
并开始尝试 EPP 存取操作,直到操作完成,该位才自动置 1。
!ECPICMD:该位是 ECP 方式下反向传输时命令标志的反值,当反向传输是命令时,该位为 0。
!ECPIBF:该位是 ECP 方式下反向传输的上传缓冲区满标志的反值,当上传缓冲区满时,该位自
动清 0,读取 PIR 寄存器后该位自动置 1。
!ECPOUT:该位是 ECP 方式下正向传输操作进行标志的反值,当写入 PDR 寄存器时,该位自动清
0,并开始尝试 ECP 正向输出操作,直到操作完成,该位才自动置 1。
PCR:控制寄存器,用于控制输出引脚和传输方向以及中断使能。
DIRIN:该位是 SPP、EPP 和 ECP 方式下的双向数据线 D7-D0 的三态输出控制,清 0 则 D7-D0 引脚
允许三态输出,置 1 则 D7-D0 引脚禁止三态输出。
INTEN:该位是 PCIE 中断输出使能,置 1 则允许输出中断请求,清 0 则禁止输出中断请求。
!SIN:该位为 1 则 SIN 引脚输出有效(低电平有效)
,否则 SIN 引脚输出无效。
INIT:该位为 1 则 INIT 引脚输出无效,否则 INIT 引脚输出有效(低电平有效)
。
!AFD:该位为 1 则 AFD 引脚输出有效(低电平有效)
,否则 AFD 引脚输出无效。
!STB:该位为 1 则 STB 引脚输出有效(低电平有效)
,否则 STB 引脚输出无效。
PXR:设置寄存器,用于设置并口工作方式。
EPPADDR:该位是 EPP 方式下的目标空间选择,为 1 则对应 EPP 的地址存取操作,为 0 则对应 EPP
的数据存取操作。
MODEEPP:该位为 1 则启用 EPP 方式。
ECPINTF:该位是 ECP 方式下的中断标志,当 ERR 引脚下降沿产生中断标志时,该位自动置 1,
读取 PXR 寄存器后该位自动清 0。
ECPDIRIN:该位是 ECP 方式下的传输方向控制,为 0 则对应 ECP 正向传输/输出,为 1 则对应 ECP
反向传输/输入。
MODEECP:该位为 1 则启用 ECP 方式。
7、功能说明
7.1. 查询与中断
CH384 芯片的 4 个串口以及并口合用一个 PCIE 中断请求引脚,
所以在进入 PCIE 中断服务程序后,
首先应该分析出是否为 CH384 请求中断,以及是哪个串口或者并口的中断请求。当进入中断服务程序
后,有专用状态分析和依次查询两种方法:
专用状态分析是指首先读取 IINT 内部中断状态寄存器,IINT 位 0 标志有效说明是串口 0 中断,
IINT 位 1 标志有效说明是串口 1 中断,IINT 位 2 标志有效说明是串口 2 中断,IINT 位 3 标志有效说
明是串口 3 中断,IINT 位 7 标志有效说明是并口中断,根据分析结果直接处理并退出,无中断则直
接退出。
依次查询是指首先读取并口的 PSR 或者 PXR 寄存器,
如果是 ECP 方式则检查 PXR 寄存器的 ECPINTF
标志,否则检查 PSR 寄存器的!INTFLAG 标志,如果有效则说明有中断,处理后退出,无中断则读取
12
CH384 中文手册(一)
串口 0 的 IIR 寄存器,有中断则处理并退出,无中断则读取串口 1 的 IIR 寄存器,有中断则处理并退
出,无中断则读取串口 2 的 IIR 寄存器,有中断则处理并退出,无中断则读取串口 3 的 IIR 寄存器,
有中断则处理并退出,无中断则直接退出。
当确认是某个串口的中断后,如果有必要还可以进一步分析 LSR 寄存器,分析中断原因并处理。
如果串口工作于中断方式,那么需要设置 IER 寄存器以允许相应的中断请求,并设置 MCR 寄存器
中的 OUT2 以允许中断输出。
如果并口工作于中断方式,那么需要设置 PCR 寄存器的 INTEN 以允许中断输出。其中,SPP 或 EPP
方式是以 ACK 引脚的上升沿启动中断请求,ECP 方式是以 ERR 引脚的下降沿启动中断请求。
如果串口工作于查询方式,那么无需设置 IER 和 MCR 的 OUT2,只需查询 LSR 寄存器并分析处理。
如果并口工作于查询方式,那么无需设置 PCR 的 INTEN,只需查询 PSR 和 PXR 寄存器并分析处理。
7.2. 串口操作
具体操作可以参考单串口芯片 16C550 或者双串口芯片 CH432 或者八串口芯片 CH438 的说明。
7.3. 并口操作
CH384 并口的 3 种工作方式之间互斥,默认为 SPP 方式。在 SPP 方式下可以实现 Nibble、Byte
和 PS/2 等附加方式,还可以通过设置 PXR 寄存器在 SPP、EPP 或 ECP 方式之间进行来回切换。下面是
并口工作方式切换图。
RESET
SPP
EPP
Nibble
Byte/PS2
ECP
在 SPP 方式下,可以用软件控制 PCR 和查询 PSR 实现 Nibble、Byte 和 PS/2 等传输,具体操作步
骤可以参考 IEEE1284 规范。
在 EPP 方式下,应该通过 PXR 的 EPPADDR 选择目标空间,通过 PCR 的 DIRIN 设置传输方向,然后
向 PDR 写入数据(对于反向传输则可以写入任意数据)启动 EPP 传输,并查询 PSR 直到!EPPREQ 为 1;
如果是反向传输则还需要从 PIR 读取数据(建议与 PSR 一起读取以提高效率)
。
在 ECP 方式下,应该通过 PCR 的 DIRIN 和 PXR 的 ECPDIRIN 设置传输方向,对于正向传输,可以
向 PDR 写入数据启动 ECP 正向传输,并查询 PSR 直到!ECPOUT 为 1;对于反向传输,可以直接查询 PSR
直到!ECPIBF 为 0,再从 PIR 读取数据(建议与 PSR 一起读取以提高效率,并从 PSR 获取!ECPICMD)。
7.4. 应用说明
CH384 芯片的串口输出引脚都是 3.3V LVCMOS 电平,兼容 5V TTL 电平,输入引脚能够承受 5V 耐
压,兼容 5V CMOS 电平、3.3V LVCMOS 和 5V TTL 及 LVTTL 电平,通过外加 RS232 电平转换器,可以
进一步转换为 RS232 串口。
异步串口方式下 CH384 芯片的引脚包括:数据传输引脚和 MODEM 联络信号引脚。数据传输引脚包
括:TXD 引脚和 RXD 引脚,默认都是高电平。MODEM 联络信号引脚包括:CTS 引脚、DSR 引脚、RI 引
脚、DCD 引脚、DTR 引脚、RTS 引脚以及 4 串口+并口模式下部分串口的 OUT 引脚,默认都是高电平。
所有这些 MODEM 联络信号都可以作为通用 IO 引脚,由计算机应用程序控制并定义其用途。
CH384 内置了独立的收发缓冲区及 FIFO,支持单工、半双工或者全双工异步串行通讯。串行数据
包括 1 个低电平起始位、5、6、7 或 8 个数据位、0 个或者 1 个附加校验位或者标志位,1 个或者 2
个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。CH384 支持常用通讯波特率:1200、2400、
13
CH384 中文手册(一)
4800、9600、19.2K、38.4K、57.6K、115.2K、230.4K、460.8K、921.6K、1.8432M、2.7648M、7.8125M
等。串口发送信号的波特率误差小于 0.2%,串口接收信号的允许波特率误差不小于 2%。
在计算机端的 Windows 和 Linux 操作系统下,CH384 的驱动程序能够兼容标准串口,所以绝大部
分原串口应用程序完全兼容,通常不需要作任何修改。
CH384 芯片的并口输出引脚都是 3.3V LVCMOS 电平,兼容 5V TTL 电平,输入引脚能够承受 5V 耐
压,兼容 5V CMOS 电平、3.3V LVCMOS 和 5V TTL 及 LVTTL 电平。
并口方式下 CH384 芯片的引脚包括:双向数据引脚、控制输出引脚和状态输入引脚。双向数据引
脚和控制输出引脚除 INIT 引脚之外,默认都是高电平。在 SPP 方式下,所有这些信号都可以作为通
用 IO 引脚,由计算机应用程序控制并定义其用途。
在计算机端的 Windows 和 Linux 操作系统下,CH384 的驱动程序能够兼容标准串口和标准打印口,
所以绝大部分原串口应用程序和并口应用程序完全兼容,通常不需要作任何修改。
CH384 可以用于通过 PCIE 总线为计算机扩展额外的高速 RS232 串口和并口/打印口、支持自动硬
件速率控制的高波特率串口、RS422 或者 RS485 通讯接口、SIR 红外通讯接口等。
8、参数
8.1. 绝对最大值(临界或者超过绝对最大值将可能导致芯片工作不正常甚至损坏)
名称
参数说明
最小值
最大值
单位
TA
TS
VCC33
VCC18
VCC18A
VIO
VIO5
工作时的环境温度
储存时的环境温度
I/O 电源电压(VCC33 接电源,GND 接地)
内核电源电压(VCC18 接电源,GND 接地)
传输电源电压(VCC18A 接电源,GND 接地)
PCIE 信号和各辅助信号输入或者输出引脚上的电压
串口和并口及扩展输入或者输出引脚上的电压
-40
-55
-0.4
85
125
4.2
℃
℃
V
-0.4
2.3
V
-0.4
-0.4
VCC33+0.4
5.3V
V
V
8.2. 电气参数(测试条件:TA=25℃,VCC33=3.3V,不包括连接 PCIE 总线的引脚)
名称
VCC33
VCC18
VCC18A
ICC
VIL
VIH
VOL
VOH
IIN
IUP
参数说明
I/O 电源电压
内核电源电压
传输电源电压
工作时的总电源电流
低电平输入电压
高电平输入电压
低电平输出电压(4mA 吸入电流)
高电平输出电压(4mA 输出电流)
无上拉的输入端的输入电流
带上拉的输入端的输入电流
最小值
3.0
典型值
3.3
最大值
3.6
单位
V
1.65
1.8
1.95
V
2
-0.4
2.0
90
250
0.7
VCC33+0.4
0.4
40
10
100
mA
V
V
V
V
uA
uA
典型值
100
244
31
22.1184
最大值
105
260
35
64
单位
MHz
KHz
MHz
MHz
VCC33-0.4
20
8.3. 时序参数(测试条件:TA=25℃,VCC33=3.3V,参考附图)
名称
FCLK
FSCL2
FSCL3
FXI
参数说明
CLK 输入频率(PCIE 总线的主频)
两线接口自动加载时 SCL 输出频率
三线接口自动加载时 SCL 输出频率
XI 输入频率、晶体频率
最小值
0
0.9216
CH384 中文手册(一)
14
9、应用
9.1. 四串口+并口(下图)
这是基于 CH384 芯片的 PCIE 四串口+并口/打印口的基本电路,图中未包含 RS232 电平转换芯片。
U3 是可选的外部配置芯片,网站上提供了 Windows 系统下的在线配置工具软件。
IEEE1284 要求打印口信号保持阻抗匹配,所以,打印口并行数据线可能需要串联电阻和并联电
容,在要求不高时也可以省掉。
晶体 X1 和电容 C23、C24 用于时钟振荡电路。其它电容用于电源退耦,容量为 10uF 的电容是钽
电容,容量为 0.1uF 的电容是独石或者高频瓷片电容,分别就近并联在 CH384 的电源引脚上。
CH384 属于高频电路,在设计 PCB 板时请参考 PCIE 总线规范,或者参考 PCIE_PCB.PDF 文档。
很抱歉,暂时无法提供与“CH384L”相匹配的价格&库存,您可以联系我们找货
免费人工找货