一种高效多串口单一中断源的芯片设计
时间:11-14
来源:互联网
点击:
1 概述
随着单片机技术的不断发展,单片机的应用越来越广泛,其中 51系列的单片机以价格低等优势始终占据着很大一块市场。但是,单片机串行口的数量通常都不多,比如 8051单片机只有一个串行口,实际使用往往要进行串行口的拓展。传统方法扩展多个串行口是利用多个中断源,而在嵌入式系统中,花费大量的中断源来扩展串口无疑是大量的资源浪费。
为更好地利用原有的资源去拓展串口,本设计利用单一中断源去拓展多个串行口,设计一个多串口单一中断源的芯片。该芯片能配合单片机进行数据读写及传送,并且能保证多个串口中断的无遗漏检测与服务。下一步,还将对设计进行一系列严格的仿真和仿真结果分析。结果表明,该设计具有较高的应用价值。
2 总体设计
2.1芯片设计
本设计是将几个串行收发器模块集成在一块芯片上,在接收方面,利用一个中断源向单片机提出中断请求,再结合单片机的读写操作选择查询,当发现某个收发器有数据时就进行相应的操作;在发送方面,则由单片机选择发送。芯片在功能上分为两层,下层包括串行收发器﹑中断控制管理和地址锁存三个模块,上层模块负责处理模块的调用、模块间的信号连接和控制向外传送数据或标志位,系统结构如图 1。

顶层模块:完成下层各个模块信号连接,根据不同的地址处理好数据和标志传送,收发器的选择等问题。
中断管理模块:储存并管理各个收发器模块的标志位,如果某收发器有中断请求则定时向单片机发出中断信号。收发器模块:完成数据格式的转换及数据的接收和发送,对接收到的数据进行缓存,最多可以缓存 8个字节的数据。地址寄存器模块:在地址锁存允许位下降沿时将地址保存起来。此模块已放到顶层模块里。
2.2 芯片与单片机连接
芯片设计的目的是为拓展单片机串口,所以如何与单片机联合工作显得至关重要。图 2a是连接的示意图(右边为所设计的芯片,只标明了跟单片机相连的引脚及一个收发器模块的输入输出引脚)。


本设计芯片与单片机的硬件连接比较简单,其中,并行数据端口 d_inout跟单片机 p0口相连,接收单片机发出的低 8位地址, ale与单片机地址锁存允许信号引脚相连,odd_check为奇偶校验结果输出引脚,连接由使用者决定。3 模块设计
3.1 顶层模块
顶层模块在各模块设计之前作为统筹规划整个程序,是设计过程中再继续完善和修正的重要部分。在顶层模块里根据不同的地址输入,选择标志或者数据的传送。为了更好地将两次操作区分开来使编程更加容易,论文中还设计了一个标志寄存器rd_check_counter,在不同的操作来时,它的值不同。
3.2中断控制模块
中断控制模块要完成置标志位,定时输出中断信号和向单片机传送标志位信息等功能。模块接收端有中断请求到来,中断控制模块即将相应收发器的标志位置 1,在数据被读取之后,又立刻将标志位清 0。
3.3收发器模块
收发器模块结构图如图 2b。在接收方面,收发器模块实现接收数据,并将数据串转并,储存到寄存器里等待单片机的读取。在发送方面,收发器将单片机数据总线送过来的并行数据串行输出。
数据接收时数据经过格式转换后便被放入 8字节的缓存里面,该缓存在每次数据存入后就启动计数器,当过一段时间还没有新的数据存入时,收发器即可以向中断控制模块提出中断请求并且等待单片机对数据的读取。发送数据时,收发器接收到单片机送来的数据并将其存储起来,在串行数据发送设备准备好的情况(txrdy为 1)下再进行格式转换并发送,无论接收还是发送串行数据都是通过外部时钟进行计数控制的。
3.4地址寄存器模块 .
地址锁存模块在 ale信号(单片机地址锁存允许信号)到来时将地址低 8位锁存起来,并送给中断控制和上层模块使用。
3.5芯片端口
上述几个模块合成后的芯片外观及其端口特征描述如下图 3所示: 1、set_mode(0,1):两位信号输入引脚,用于模式的选择,模式 1和模式 2分别用 01和 10来选择。2、ale:地址锁存允许信号输入引脚,与单片机的 ale相连,在 ale下降沿的时候将地址低 8位锁存到地址锁存模块。3、clk:时钟信号输入引脚,时钟的频率定为串行数据传输频率的 4倍,如串行通信的波特率是9600bps,则 clk的频率是 9600×4=38400Hz。
4、cs:芯片总片选信号输入引脚,低电平有效。
5、rd,wr:单片机向芯片读写的控制引脚,低电平有效。
6、rxd1,rxd2,rxd3,rxd4:串行输入引脚。
7、INT0:中断信号输出引脚,下降沿有效。
8、odd_check1_o,odd_check2_o,odd_check3_o,odd_check4_o:送给单片机的奇偶校验标志信号输出引脚。
9、rdfull:数据缓冲器标志信号输出引脚,该信号用‘1’和‘0’表明是否有收发器的缓存了数据尚未被提取。
10、rdrdy1,rdrdy2,rdrdy3,rdrdy4:引脚分别用于表明各个收发器是否正忙,从该收发器开始接收数据到数据被单片机读取整个过程,其相应的rdrdy引脚输出‘1’。
11、txd1,txd2,txd3,txd4:串行数据输出引脚。
12、tdempty:该引脚输出为‘1’时表明芯片已没有正在发送或者是将要发送的数据。
13、txrdy1,txrdy2,txrdy3,txrdy4:分别为收发器 1、2、3和 4可否进行发送控制输入端,输入为‘1’表示可以进行串行数据的发送。
14、d_inout(7:0):双向数据总线。应与单片机 p0口相连。
15、addr_h(7:0):地址高 8位。
随着单片机技术的不断发展,单片机的应用越来越广泛,其中 51系列的单片机以价格低等优势始终占据着很大一块市场。但是,单片机串行口的数量通常都不多,比如 8051单片机只有一个串行口,实际使用往往要进行串行口的拓展。传统方法扩展多个串行口是利用多个中断源,而在嵌入式系统中,花费大量的中断源来扩展串口无疑是大量的资源浪费。
为更好地利用原有的资源去拓展串口,本设计利用单一中断源去拓展多个串行口,设计一个多串口单一中断源的芯片。该芯片能配合单片机进行数据读写及传送,并且能保证多个串口中断的无遗漏检测与服务。下一步,还将对设计进行一系列严格的仿真和仿真结果分析。结果表明,该设计具有较高的应用价值。
2 总体设计
2.1芯片设计
本设计是将几个串行收发器模块集成在一块芯片上,在接收方面,利用一个中断源向单片机提出中断请求,再结合单片机的读写操作选择查询,当发现某个收发器有数据时就进行相应的操作;在发送方面,则由单片机选择发送。芯片在功能上分为两层,下层包括串行收发器﹑中断控制管理和地址锁存三个模块,上层模块负责处理模块的调用、模块间的信号连接和控制向外传送数据或标志位,系统结构如图 1。

顶层模块:完成下层各个模块信号连接,根据不同的地址处理好数据和标志传送,收发器的选择等问题。
中断管理模块:储存并管理各个收发器模块的标志位,如果某收发器有中断请求则定时向单片机发出中断信号。收发器模块:完成数据格式的转换及数据的接收和发送,对接收到的数据进行缓存,最多可以缓存 8个字节的数据。地址寄存器模块:在地址锁存允许位下降沿时将地址保存起来。此模块已放到顶层模块里。
2.2 芯片与单片机连接
芯片设计的目的是为拓展单片机串口,所以如何与单片机联合工作显得至关重要。图 2a是连接的示意图(右边为所设计的芯片,只标明了跟单片机相连的引脚及一个收发器模块的输入输出引脚)。


本设计芯片与单片机的硬件连接比较简单,其中,并行数据端口 d_inout跟单片机 p0口相连,接收单片机发出的低 8位地址, ale与单片机地址锁存允许信号引脚相连,odd_check为奇偶校验结果输出引脚,连接由使用者决定。3 模块设计
3.1 顶层模块
顶层模块在各模块设计之前作为统筹规划整个程序,是设计过程中再继续完善和修正的重要部分。在顶层模块里根据不同的地址输入,选择标志或者数据的传送。为了更好地将两次操作区分开来使编程更加容易,论文中还设计了一个标志寄存器rd_check_counter,在不同的操作来时,它的值不同。
3.2中断控制模块
中断控制模块要完成置标志位,定时输出中断信号和向单片机传送标志位信息等功能。模块接收端有中断请求到来,中断控制模块即将相应收发器的标志位置 1,在数据被读取之后,又立刻将标志位清 0。
3.3收发器模块
收发器模块结构图如图 2b。在接收方面,收发器模块实现接收数据,并将数据串转并,储存到寄存器里等待单片机的读取。在发送方面,收发器将单片机数据总线送过来的并行数据串行输出。
数据接收时数据经过格式转换后便被放入 8字节的缓存里面,该缓存在每次数据存入后就启动计数器,当过一段时间还没有新的数据存入时,收发器即可以向中断控制模块提出中断请求并且等待单片机对数据的读取。发送数据时,收发器接收到单片机送来的数据并将其存储起来,在串行数据发送设备准备好的情况(txrdy为 1)下再进行格式转换并发送,无论接收还是发送串行数据都是通过外部时钟进行计数控制的。
3.4地址寄存器模块 .
地址锁存模块在 ale信号(单片机地址锁存允许信号)到来时将地址低 8位锁存起来,并送给中断控制和上层模块使用。
3.5芯片端口
上述几个模块合成后的芯片外观及其端口特征描述如下图 3所示: 1、set_mode(0,1):两位信号输入引脚,用于模式的选择,模式 1和模式 2分别用 01和 10来选择。2、ale:地址锁存允许信号输入引脚,与单片机的 ale相连,在 ale下降沿的时候将地址低 8位锁存到地址锁存模块。3、clk:时钟信号输入引脚,时钟的频率定为串行数据传输频率的 4倍,如串行通信的波特率是9600bps,则 clk的频率是 9600×4=38400Hz。
4、cs:芯片总片选信号输入引脚,低电平有效。
5、rd,wr:单片机向芯片读写的控制引脚,低电平有效。
6、rxd1,rxd2,rxd3,rxd4:串行输入引脚。
7、INT0:中断信号输出引脚,下降沿有效。
8、odd_check1_o,odd_check2_o,odd_check3_o,odd_check4_o:送给单片机的奇偶校验标志信号输出引脚。
9、rdfull:数据缓冲器标志信号输出引脚,该信号用‘1’和‘0’表明是否有收发器的缓存了数据尚未被提取。
10、rdrdy1,rdrdy2,rdrdy3,rdrdy4:引脚分别用于表明各个收发器是否正忙,从该收发器开始接收数据到数据被单片机读取整个过程,其相应的rdrdy引脚输出‘1’。
11、txd1,txd2,txd3,txd4:串行数据输出引脚。
12、tdempty:该引脚输出为‘1’时表明芯片已没有正在发送或者是将要发送的数据。
13、txrdy1,txrdy2,txrdy3,txrdy4:分别为收发器 1、2、3和 4可否进行发送控制输入端,输入为‘1’表示可以进行串行数据的发送。
14、d_inout(7:0):双向数据总线。应与单片机 p0口相连。
15、addr_h(7:0):地址高 8位。
单片机 51单片机 嵌入式 仿真 收发器 总线 Xilinx 电路 VHDL ModelSim 相关文章:
- S3C2440A嵌入式手持终端电源管理系统设计(01-11)
- 几种实用的低电压冗余电源方案设计(01-26)
- 基于先验预知的动态电源管理技术(03-28)
- 基于CAN总线的低压智能断路器的设计(04-06)
- 基于MSP430单片机的电源监控管理系统(04-20)
- 基于实时时钟芯片X1228的电源控制器设计(03-14)
闁诲繐绻愮€氫即銆傞懜鐢碘枖闁规崘灏欓悷褰掓煕閳哄喚鏀版い鏂垮瀵偄鈻庨幋鏃€鐓犻梺瑙勪航閸斿繐鐣烽敓锟�
- 婵°倕鍊瑰玻鎸庮殽閸モ晙鐒婇柛鏇ㄥ灱閺嗐儳鈧鎮堕崕鎶藉煝閼测晜鏆滈柛顐g箓閹鏌熺€涙ê濮囬柣鎾规硶閹峰顢橀悢鍛婄暚缂備礁顑呴鍛淬€冨⿰鍛晳闁跨噦鎷�
闂佺ǹ绻堥崝宥夊蓟閻斿憡濯寸€广儱鎷嬮崝鍛槈閺冨倸孝闁汇劎濮甸敍鎰板箣濠婂懐鎳囨繛鎴炴尰濮樸劑鎮¢敍鍕珰闁糕槅鍘剧粈澶愭煙缂佹ê濮囩€规洖鐭傞幆宥夊棘閸喚宀涢悗瑙勬偠閸庢壆绱為弮鍫熷殑闁芥ê顦~鏃堟煥濞戞ǹ瀚板┑顕呬邯楠炲啴濡搁妷锕€娓愰梻渚囧亞閸犳劙宕瑰鑸碘拹濠㈣埖鐡曠粈瀣归崗鍧氱細妞ゎ偄鎳橀幆鍐礋椤愩倖顔忔俊顐ゅ閸ㄥ灚瀵奸幇顔剧煓閻庯綆浜為悷锟�...
- 婵炴垶鎼╅崢鐐殽閸モ晙鐒婇柛鏇ㄥ灱閺嗐儳鈧鎮堕崕鎶藉煝閼测晜鏆滈柛顐g箓閹鏌熺€涙ê濮囬柣鎾规硶閹峰顢橀悢鍛婄暚缂備礁顑呴鍛淬€冨⿰鍛晳闁跨噦鎷�
缂備緡鍣g粻鏍焵椤掑﹥瀚�30婵犮垼鍩栧畝绋课涢鍌欑剨闁告洦鍨奸弳銉╂煕閳哄喚鏀版い鏂垮閹风娀宕滆閺屻倝鏌ㄥ☉妯侯殭缂佹鎸鹃埀顒傤攰閸╂牕顔忕捄銊﹀珰闁规儳鎳愮粈澶愭煕閺傜儤娅呮い鎺斿枛瀹曘劌螣閻戞ê娓愰梻渚囧亞閸犳洟骞撻鍫濈濡鑳堕鍗炩槈閹垮啩绨婚柟顔奸叄瀵粙鎮℃惔锝嗩啅婵☆偆澧楅崹鍨閹邦喚鐭欓悗锝庝簽閻熷酣鏌i妸銉ヮ伂妞も晪绠戞晥闁跨噦鎷�...
- Agilent ADS 闂佽桨鐒﹂悷銉╊敆閻旂厧鏄ョ痪顓炴媼閸炴煡鎮归崶褍鈷旈柍璇插悑缁鸿棄螖閸曞灚顥�
婵炴垶鎸婚幐鎼侇敊瀹ュ绠抽柛顐秵閸わ箓鏌ㄥ☉妯垮闁告瑥绻樺Λ鍐閿濆骸鏁奸柣鐔哥懐閺嬪儊S闂佸憡鑹剧€氼噣锝為幒妤€绀夐柣鏃囶嚙閸樻挳鏌涘⿰鍐濞村吋鍔楃划娆戔偓锝庝簽鐎瑰鏌i姀鈺冨帨缂侀亶浜跺畷婵嬪煛閸屾矮鎲鹃梺鐑╁亾閸斿秴銆掗崼鏇熷剹妞ゆ挾濮甸悾閬嶆煛閸愩劎鍩f俊顐ユ硶閳ь剚鍐荤紓姘辨閻у挷S...
- HFSS闁诲孩鍐荤紓姘卞姬閸曨垰鏄ョ痪顓炴媼閸炴煡鎮归崶褍鈷旈柍璇插悑缁鸿棄螖閸曞灚顥�
闁荤姍鍐仾缂佽鐒︾粙澶愬箻閹颁礁鏅欓梺鐟版惈閻楁劙顢氶幎鑺ユ櫖閻忕偠妫勫鍧楁⒒閸稑鐏辨い鏂款樀楠炴帡宕峰▎绂⊿闂佹眹鍔岀€氼剚鎱ㄥ☉銏″殑闁芥ê顦扮€氭煡骞栫€涙ɑ鈷掗柡浣靛€濋弫宥囦沪閽樺鐩庨梺鍛婃煛閺呮粓宕戝澶婄闁靛ň鏅滃銊х磼椤栨繂鍚圭紒顔芥そ瀹曠兘寮跺▎鎯уΤ婵炴垶姊绘慨鐢垫暜婢舵劕绠垫い鈥抽敪SS...
- CST閻庣敻鍋婇崰妤冧焊濠靛棭鍟呴柕澶堝€楃粙濠囨倵楠炲灝鈧洟鎮$捄銊﹀妞ゆ挾鍠愬▓宀€绱掔€n亶鍎忔い銊︾矌閹叉鏁撻敓锟�
闂佸搫顦€涒晛危閹存緷铏光偓锝傛櫅閻︽粓鎮规担绛嬪殝缂佽鲸绻堝畷妤呭Ω閳哄倹銆冮柣鐘辩瀵泛顔忕欢缍璗闂佸憡鑹剧€氫即濡村澶婄闁绘棁顕ч崢鎾煕濠婂啳瀚板ù鍏煎姉缁瑧鈧綆浜炵€瑰鏌i姀鈺冨帨缂佽鲸绻堝畷婵嬪煛閸屾矮鎲鹃棅顐㈡祩閸嬪﹪鍩€椤掑倸鏋欓柛銈嗙矌閳ь剚鍐婚梽鍕暜婢舵劕绠垫い鈥愁敍T闁荤姳鐒﹀畷姗€顢橀崨濠冨劅闁哄啫鍊归弳锟�...
- 闁诲繐绻愮€氫即銆傞崼鏇炴槬闁惧繗顕栭弨銊╂煕閳哄喚鏀版い鏂垮閹风娀宕滆閺岋拷
婵炴垶鎸稿ú锝囩箔閳ь剙螖閸屾惮鎴﹀Χ婵傚摜宓侀柛鎰级閸曢箖鎮硅閸ゆ牜妲愬┑鍥ㄤ氦婵炲棗娴烽弰鍌炴偣閸パ冣挃闁宠鍚嬬粙澶嬫姜閹殿喚鈽夐梺闈╄礋閸斿矂鎯冮悩绛圭矗闁瑰鍋涜灇闂佸搫鐗滈崹鍫曘€傞锕€鏄ラ柣鏃€鐏氭禍锝夋倶閻愬瓨绀冮悗姘辨暬閹虫ê顫濋崜褏顦梺鐟扮仛閹搁绮崨鏉戦敜婵﹩鍓涢弶浠嬫煟閵娿儱顏х紒妤佹尰缁嬪顫濋鍌氭暏缂佺虎鍘搁崑锟�...
- 閻庣敻鍋婇崰妤冧焊濠靛牅鐒婇柛鏇ㄥ灱閺嗐儲绻涢弶鎴剶闁革絾妞介獮娆忣吋閸曨厾鈻曢梺绯曟櫇椤㈠﹪顢欓崟顓熷珰闁告挆鈧弻銈夋煕濮橆剛澧︽繛澶涙嫹
闁荤姵鍔﹂崢娲箯闁秴瑙﹂柛顐犲劜閼茬娀鏌¢崶銊︾稇闁汇倕瀚伴獮鍡涙偑閸涱垳顦紓鍌氬暞閸ㄧ敻宕规惔銊ノュ〒姘e亾妞わ絽澧庨幏顐﹀矗濡搫纾块梺闈涙閼冲爼濡靛顑芥灃闁靛繒濮甸悵銈夋煏閸℃洘顦峰ǎ鍥э躬瀹曪綁鏌ㄧ€n剛鍩嶉梺鎸庣☉閺堫剟宕瑰⿰鍛暫濞达絽婀辨竟澶愭煛瀹ュ妫戠紒銊ユ健閺屽懘鏁撻敓锟�...
栏目分类