Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247528
  • 博文数量: 43
  • 博客积分: 1878
  • 博客等级: 上尉
  • 技术积分: 457
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-02 11:08
文章分类

全部博文(43)

文章存档

2011年(3)

2010年(40)

分类: LINUX

2010-11-16 16:13:22

关于”扩展串口“的驱动问题。
环境:PC104(x86),安装redhat9.0的操作系统。芯片(16550A)
系统默认只有两个串口,板上有10个串口,通过setserial -g /dev/ttyS*,系统无法识别串口芯片类型。通过setserial的命令,对串口进行了设置后,串口能够通讯了,但是串口传输非常慢,大概每隔5秒的样子才发一次数据。

请教高手来接到?

阅读(1855) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-19 15:10:24

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com

chinaunix网友2010-11-16 16:14:37

Linux的串口驱动版本是5.05,系统 /dev/ttySX是串口驱动注册的设备文件。你可以用setserial来配置驱动的参数指定 ttySX用的是什么地址,什么中断,芯片是什么型号。比如你的物理串口设备使用的中断是3,你应该设置对应的ttySX的中断是3,当然你也可以用 setserial设置驱动使用其他的中断号,这样的话,驱动将不会得到硬件的中断信号,所以中断服务函数不会执行,所以驱动就会设置一个定时器,超时候,将会自己调用函数,将缓冲区的数据发送出去。标准串口发送数据流程:数据存放在缓冲区---〉设置传输中断使能退出,等待传输中断发出后,中断处理函数来将缓冲区的数据发出。如果中断号设置错误,将不能得到串口的中断信号,所以数据一直在缓冲区,直到超时候,由定时器调用服务函数将数据发出。 所以,你只要正确的设置串口的参数,就可以了。 另外,ttySX可以任意设置,比如串口 port 0x1024 irq 7 ,你可以设置到ttyS3,也可以设置到ttyS4上,ttySX中的X没有与物理序号绑定的含义。