艾卡科技 ICOM-3304 PC 104 总线 4 端口 RS-232 工业通讯模块 说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ICOM-3304




一、概述
ICOM-3304是一款带有4个单独可配置的RS-232端口的兼容PC/104模块。

根据你的应用需求ICOM-3304可以提供多种工作模式,这些模式包括标准/增强模式、独立/共享中断模式、速率模式和操作系统模式。

通信速率可以达到460Kbps。

每个端口都带有一个16FIFO的缓存,能够为你提供高速、可靠的串行I/O。

UART能够在将数据发送到总线之前将其缓冲处理为16字节的数据包,这样能够明显地减轻CPU的负担,避免由于未及时响应数据请求的故障所造成的数据丢失。

FIFO缓存功能非常适合Windows下的高速串行I/O。

卡上还有15KV的ESD保护,大大增强了系统在恶劣环境下的可靠性。

二、特点
¾4个独立RS-232串口
¾传输速率可达460 Kpbs
¾端口可选独立/共享中断
¾内置硬件控制流量,不会丢失数据
¾内建15KVESD浪涌保护
¾宽的IRQ选择:3,4,5,6,7,9,10,11,12或15
¾LED显示:TXD,RXD
¾标准PC端口:COM1,COM2,COM3,COM4兼容
¾支持Windows 95/98/2000/XP、DOS
三、规格
¾总线接口:PC/104
¾端口数量:4
¾I/O地址:200H~3F8H
¾IRQ:3,4,5,6,7,9,10,11,12,15
¾数据位:5,6,7,8
¾停止位:1,1.5,2
¾校验:无校验,偶校验,奇校验
¾速度:50~460Kpbs
¾接口:4个针型DB-9接口
¾数据信号:TxD,RxD,RTS,CTS,DTR,DSR,DCD,RI,GND
¾电源要求:
+5V @ 200mA (典型)
+5V @ 250mA (最大)
¾输入时钟:14.7456MHz
¾温度:
工作温度: 0°~65℃
存储温度:-25°~80℃
¾湿度:0%~90%相对温度,无凝结
四、跳线及拨码开关设置
1、默认设置
默认设置
JP1 IRQ5 基地址(SW1) 300H
向量地址(SW2) 280H
标准/增强模式(M0)增强模式
中断模式(M1)共享模式
速率模式(SP) 1×
操作系统模式(JP11) Windows95/98/2000/XP ICOM-3304根据你的应用需求可以提供多种工作模式,这些模式包括标准/
增强模式、独立/共享中断模式、速率模式和操作系统模式。

下面将详细介绍以
上各种模式。

在本手册中我们用下面的图标来表示拨码开关的开和关。

2、标准/增强模式
ICOM-3304提供标准和增强模式。

在标准模式下,I/O地址兼容PC机的通
信端口COM1~COM4。

在增强模式下,你能够选择不同的I/O地址(范围200H~
3F8H)。

你通过设置SW1中的M0可以选择标准或增强模式。

z标准模式
在标准模式下,各端口的I/0地址如下表所示
端口地址
PORT1 3F8
PORT2 2F8
PORT3 3E8
PORT4 2E8
z增强模式
在增强模式下你可以设置不同的I/O地址。

四个端口的I/O地址如下表:
端口地址
PORT1 BASE+00H PORT2 BASE+08H PORT3 BASE+10H PORT4 BASE+18H 在增强模式下,你可以通过设置SW1来选择200H~3F8H中的任何一个地
址作为基地址。

基地址的值你可以对照下表计算出来。

基地址十进制十六进制
A3 8 8
A4 16 10
A5 32 20
A6 64 40
A7 128 80
A8 256 100
A9 512 200 注:A9在程序中已经设置为OFF状态。

(拨码开关ON为0,OFF为1)
下表中显示不同地址的设置
基地址A8 A7 A6 A5 A4 A3 200 ON ON ON ON ON ON 208 ON ON ON ON ON OFF 210 ON ON ON ON OFF ON 218 ON ON ON ON OFF OFF … … … … … … …
300 OFF ON ON ON ON ON 308 OFF ON ON ON ON OFF … … … … … … …
3C0 OFF OFF OFF ON ON ON 3C8 OFF OFF OFF ON ON OFF 3D0 OFF OFF OFF ON OFF ON
3、独立/共享中断模式(M1,JP1,JP2,JP3,JP4)
可以通过设置SW2中的M1来选择中断模式,如下图所示:
z独立中断模式 (J P1,JP2,JP3,JP4)
在这种模式下,每个通道都有一个单独的中断。

端口与跳线对应如下:
Port 1 JP1
Port 2 JP2
Port 3 JP3
Port 4 JP4
z共享中断模式 (JP1)
在这种模式下,所有的通道共享JP1对应的中断,其余的接口应该断开选择,如下图所示:
z中断状态寄存器设置(SW2,向量地址)
ICOM-3304的这个特性是用在共享模式中的。

当有一个端口接收到数据时,
它将在中断寄存器中产生一个中断。

软件能够读取它,并且能够马上识别是哪个
端口产生了这个中断。

那么,读到该状态寄存器数据的第一位到第四位分别对应
于四个端口的状态,‘0’为有中断状态,‘1’为没有产生中断。

用户可以通过SW2来改变中断状态地址。

请注意地址译码将占用连续16
个字节的空间。

例如你将开关设置为210H,则地址210H至21FH将被用作译码。

通过开关SW2设置中断状态寄存器不同的地址如下表所示:
向量地址A8 A7 A6 A5 A4 200H ON ON ON ON ON 210H ON ON ON ON OFF 220H ON ON ON OFF ON 230H ON ON ON OFF OFF 240H ON ON OFF ON ON 250H ON ON OFF ON OFF 260H ON ON OFF OFF ON 270H ON ON OFF OFF OFF 280H ON OFF ON ON ON 290H ON OFF ON ON OFF 2A0H ON OFF ON OFF ON 2B0H ON OFF ON OFF OFF 2C0H ON OFF OFF ON ON 2D0H ON OFF OFF ON OFF 2E0H ON OFF OFF OFF ON 2F0H ON OFF OFF OFF OFF 300H OFF ON ON ON ON 310H OFF ON ON ON OFF 320H OFF ON ON OFF ON 330H OFF ON ON OFF OFF 340H OFF ON OFF ON ON 350H OFF ON OFF ON OFF 360H OFF ON OFF OFF ON 370H OFF ON OFF OFF OFF 380H OFF OFF ON ON ON 390H OFF OFF ON ON OFF 3A0H OFF OFF ON OFF ON 3B0H OFF OFF ON OFF OFF 3C0H OFF OFF OFF ON ON 3D0H OFF OFF OFF ON OFF 3E0H OFF OFF OFF OFF ON 3F0H OFF OFF OFF OFF OFF
4、速率选择
ICOM-3304提供一个独特的速率模式设置,你可以通过设置SW2中的SP 来选择一般速率模式和高速模式。

如下图所示:
z一般速率模式(1×)
在这种模式下,可以选择一般的波特率,如:2400,4800,9600,19200,…,115200bps。

z高速模式(8×)
在这种模式下,速率将变为一般速率模式下的8倍(如你选择速率为
115200bps时,则现在速率将增至921600bps)。

5、操作系统选择
设置JP11可以选择相应的操作系统。

将JP11左边两个管脚短接,为DOS or Windows3.1操作系统模式;将JP11右边两个管脚短接,则为
Windows95/98/2000/XP操作系统。

如下图所示:
DOS or Windows3.1 Windows 95/98/2000/XP
五、管脚定义
z DB9针型接口定义
z JP7、JP8、JP9、JP10管脚定义
信号PIN PIN 信号
DCD 1 2 DSR
RxD 3 4 RTS
TxD 5 6 CTS
DTR 7 8 RI
GND 9 10
注:RS-232传输电缆的最长距离为100英尺,如果你需要传输更长的距离,建议你采用另外的标准(如RS-422或者RS-485等)。

如果你不用DTR,DSR,RTS,CTS信号,请将它们环接起来,否则软件可能不能正常工作,因为它一直在检测握手信号。

附录A 寄存器结构和格式
z寄存器结构
本附录只是简单的给出了模块寄存器的描述。

更详细的资料请参考
UART16C554的数据手册。

所有寄存器都有一个字节。

位0是LSB,位7是MSB。

每个寄存器的地址
规定为对端口基地址的偏移,基地址由SW1设置。

DLAB是“Divisor latch Access位”,BASE+3的位7
BASE+0 接收缓冲寄存器(当DLAB=0 并且是读操作)
BASE+0 发送保持寄存器(当DLAB=0 并且是写操作)
BASE+0 除数锁存器,位0—7 (当DLAB=1)
BASE+1 除数锁存器,位8—15 (当DLAB=1)
BASE+0和BASE+1两个字节组成了16位数字除数,它决定了波特率,除
数的设置如下:
波特率除数波特率除数
50 2304 2400 48
75 1536 3600 32
110 1047 4800 24 133.5 857 7200 16 150 768 9600 12 300 384 19200 6 600 192 38400 3 1200 96 56000 2 1800 64 115200 1 2000 58
BASE+1 中断状态寄存器(IER),当DLAB=0
位0 使能接收数据可用中断
位1 使能发送保持寄存器空中断
位2 使能接收器线路状态中断
位3 使能调制解调器状态中断
BASE+2 FIFO控制寄存器(FCR)
位0 使能发送和接收FIFO
位1 清接收FIFO内容
位2 清发送FIFO内容
位6—7 设置触发器接收FIFO中断的级别
BASE+3 线路控制寄存器(LCR)
位0 字长选择位0
位1 字长选择位1
位1 位0 字长(位)
0 0 5
0 1 6
1 0 7
1 1 8
位2 停次数位
位3 奇偶使能
位4 偶数选择
位5 奇偶固定
位6 设置暂停
位7 除数锁存访问位
BASE+4 调制解调器控制寄存器(MCR)
位0 DTR
位1 RTS
BASE+5 线路状态寄存器(LSR)
位0 接收器数据准备好
位1 超速错误
位2 奇偶错误
位3 组帧错误
位4 暂停中断
位5 发送保持寄存器空
位6 发送移位寄存器空
位7 奇偶错误或组帧错误中至少出现一个,或FIFO中
指示暂停
BASE+6 调制解调器状态寄存器(MSR)
位0 Delta CTS
位1 Delta DSR
位2 Trailing edge ring indicator
位3 Delta 接收线路
位4 CTS
位5 DSR
位6 RI
BASE+7 临时数据寄存器
z编程举例
/*************************************************/ /* Program: DEMO01.C */ /* Description: */ /* This demo program transmits a string to COM1 and */ /* receives a string from COM2 */ /* Compiler: Turbo C 2.0 */ /*************************************************/ #include <dos.h>
#include <io.h>
#include <stdio.h>
#include <conio.h>
#define TIME_OUT 10000
static int base0 = 0x3f8; /* Base address of port 0 */
static int base1 = 0x2f8; /* Base address of port 1 */
static char rec[16]; /* Buffer for received string */
static char cmd[16]; /* Buffer for transmitted string /
void main()
{
int i; /* Counter for character being sent/received */
char flag; /* Flag for end of output/input data */
int timeout; /* Timeout counter */
outport((base0+2), 0xc9); /* enable port 0 FIFO */
outport((base1+2), 0xc9); /* enable port 1 FIFO */
/* Set communication parameters for port 0 */
outp(base0+3, 0x80); /* Set DLAB=1 */
/* Set baud = 115200 */
outp(base0, 0x01);
outp(base1+1, 0);
/* Set data=8, stop=1, no parity */
outp(base0+3, 0x03);
/* Disable port 0 interrupt */
outp(base0+1, 0x00);
/* Set communication parameters for port 1 */
outp(base1+3, 0x80); /* Set DLAB=1 */
/* Set baud = 115200 */
outp(base1, 0x01);
outp(base1+1, 0);
/* Set data=8, stop=1, no parity */
outp(base1+3, 0x03);
/* Disable port 1 interrupt */
outp(base1+1, 0x00);
printf("\nEnter a string to be transmitted "
"(15 characters or less) or Q to quit:");
gets(cmd);
while (cmd[0] != 'q' && cmd[0] != 'Q')
{
i=0;
cmd[strlen(cmd)] = 0x0d;
flag=1;
while (flag)
{
outportb(base0, cmd[i]); /* Send data */
if (cmd[i] == 0x0d)
flag=0;
i++;
}
i=0;
flag=1;
timeout=TIME_OUT;
while (flag)
{
/* Check if receiver data is ready */
if ((inportb(base1+5) & 1) !=0)
{
rec[i]=inportb(base1); /* Receive data */
if (rec[i] == 0x0d)
{
rec[i+1]='\0';
flag=0;
printf("\nReceived data: %s\n", rec);
}
i++;
}
else
{
/* Check timeout */
timeout-;
if (timeout == 0)
{
flag = 0;
printf("\nTimeout error\n");
}
}
}
printf("\nEnter a string to be transmitted "
"(15 characters or less) or Q to quit:");
gets(cmd);
}
}
附录B 标准PC I/O地址参考
下表中给出了标准PC设备通用的I/O地址,在选择你的端口I/O地址时请不要用到这些地址。

I/O地址设备
000 ~ 00F DMA(8237A)
020 ~ 0218259A IRQ 控制器
定时器/计数器
040 ~ 043 8253/8254
8255A 060 ~ 063 PPI
070 ~ 071实时时钟
080 ~ 08F DMA页寄存器
中断芯片
0A0 ~ 0BF 8259A
0C0 ~ 0DF第二DMA控制器 8237A
0F0 ~ 0FF数字协处理品
1F0 ~ 1F8 AT硬盘
200 ~ 20F游戏I/O
278 ~ 27F第二并行打印机适配口
2F8 ~ 2FF串口(COM2)
320 ~ 32F XT硬盘
378 ~ 37F并行打印机适配口
380 ~ 38F SDLC二进制通讯口
3A0 ~ 3AF主二进制通讯口
3B0 ~ 3BF单色显示/并口
3D0 ~ 3DF彩色图形转接器
3F0 ~ 3F7磁盘控制器
3F8 ~ 3FF串口(COM1)
注:本系列产品执行ADVCOM的保修策略。

实行非人为损害、无烧坏且质保签完好180天免费换新,二年免费保修,终身维修。

具体内容请查阅网站中的技术支持。

以上文字及图片版权归艾卡科技所有,内容如有更改恕不令行通知。

相关文档
最新文档