1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口分析

串口驱动分析 (国嵌) 1.发送和接收 发送:循环buffer (发送fifo(发送移位寄存器 接收:接收移位寄存器(接收fifo (Flip_buf 发送的过程是:把数据写到发送fifo中,fifo把收到的数据传给发送移位寄存器(自动的,非driver控制),然后每个时钟脉冲往串口线上写一bit数据。 接收的过程是:接收移位寄存器收到数据,发送给接收fifo,接收fifo事先设置好了触发门限,当里面的数据量超过门限时就会触发一个中断,调用驱动中的中断处理函数,把数据写到flip_buf中。 2.寄存器 UART Line Control Register: Word Length :数据位长度 Number of Stop Bit :停止位数 Parity Mode :奇偶校验位类型 Infra-Red Mode :UART/红外模式选择(当以UART模式工作时,需设为“0”) UART Control Register Receive Mode:选择接收模式。如果是采用DMA模式的话,还需要指定说使用的DMA信道。 Transmit Mode :同上。 Send Break Signal :选择是否在传1帧资料中途发送Break信号。 Loopback Mode :选择是否将UART置于Loopback测试模式。 Rx Error Status Interrupt Enable :选择是否使能当发生接收异常时,是否产生接收错误中断。 Rx Time Out Enable :是否使能接收超时中断。 Rx Interrupt Type :选择接收中断类型。 选择0:Pulse(脉冲式/边沿式中断。非FIFO模式时,一旦接收缓冲区中有数据,即产生一个中断;为FIFO模式时,一旦当FIFO中的资料达到一定的触发水平后,即产生一个中断) 选择1:Level(电平模式中断。非FIFO模式时,只要接收缓冲区中有数据,即产生中断;为FIFO模式时,只有FIFO中的资料达到触发水平后,即产生中断) Tx Interrupt Type :类同于Rx Interrupt Type UART FIFO Conrtol Register FIFO Enable :FIFO使能选择。 Rx FIFO Reset :选择当复位接收FIFO时是否自动清除FIFO中的内容。 Tx FIFO Reset :选择当复位发送FIFO时是否自动清除FIFO中的内容。 Rx FIFO Trigger Level :选择接收FIFO的触发水平。 Tx FIFO Trigger Level :选择发送FIFO的触发水平。 UART TX/RX Status Register Receive buffer data ready :当接收缓冲寄存器从UART接收端口接收到有效资料时将自动置“1”。反之为“0则表示缓冲器中没有资料。 Transmit buffer empty :当发送缓冲寄存器中为空,自动置“1”;反之表明缓冲器中正有资料等待发送。 Transmitter empty :当发送缓冲器中已经没有有效资料时,自动置“1”;反之表明尚有资料未发送。 UART FIFO Status Register Rx FIFO Count :接收FIFO中当前存放的字节数。 Tx FIFO Count :发送FIFO中当前存放的字节数。 Rx FIFO Full :为“1“表明接收FIFO已满。 Tx FIFO Full :为“1“表明发送FIFO已满。 3.函数介绍 模块初始化函数: static int __init s3c2410uart_init(void) { return uart_register_driver(s3c2410_reg); } 使用uart_register_driver注册串口驱动。 static struct uart_driver s3c2410_reg = { owner: THIS_MODULE, normal_major: SERIAL_S3C2410_MAJOR, normal_name: ttyS%d, callout_name: cua%d, normal_driver: normal, callout_major: CALLOUT_S3C2410_MAJOR, callout_driver: callout, table: s3c2410_table, termios: s3c2410_termios, termios_locked: s3c2410_termios_locked, minor: MINOR_START, nr: UART_NR, por

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档