微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柟缁㈠枟閸庡顭块懜闈涘缂佺嫏鍥х閻庢稒蓱鐏忣厼霉濠婂懎浜惧ǎ鍥э躬婵″爼宕熼鐐差瀴闂備礁鎲¢悷銉ф崲濮椻偓瀵鏁愭径濠勵吅闂佹寧绻傚Λ顓炍涢崟顓犵<闁绘劦鍓欓崝銈嗙箾绾绡€鐎殿喖顭烽幃銏ゅ川婵犲嫮肖闂備礁鎲¢幐鍡涘川椤旂瓔鍟呯紓鍌氬€搁崐鐑芥嚄閼搁潧鍨旀い鎾卞灩閸ㄥ倿鏌涢锝嗙闁藉啰鍠栭弻鏇熺箾閻愵剚鐝曢梺绋款儏濡繈寮诲☉姘勃闁告挆鈧Σ鍫濐渻閵堝懘鐛滈柟鍑ゆ嫹04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝曢梻浣藉Г閿氭い锔诲枤缁辨棃寮撮姀鈾€鎷绘繛杈剧秬濞咃絿鏁☉銏$厱闁哄啠鍋撴繛鑼枛閻涱噣寮介褎鏅濋梺闈涚墕濞诧絿绮径濠庢富闁靛牆妫涙晶閬嶆煕鐎n剙浠遍柟顕嗙節婵$兘鍩¢崒婊冨箺闂備礁鎼ú銊╁磻濞戙垹鐒垫い鎺嗗亾婵犫偓闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗13闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝栭梻渚€鈧偛鑻晶鎵磼椤曞棛鍒伴摶鏍归敐鍫燁仩妞ゆ梹娲熷娲偡閹殿喗鎲奸梺鑽ゅ枂閸庣敻骞冨鈧崺锟犲礃椤忓棴绱查梻浣虹帛閻熴垽宕戦幘缁樼厱闁靛ǹ鍎抽崺锝団偓娈垮枛椤攱淇婇幖浣哥厸闁稿本鐭花浠嬫⒒娴e懙褰掑嫉椤掑倻鐭欓柟杈惧瘜閺佸倿鏌ㄩ悤鍌涘 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閻樻爠鍥ㄧ厱閻忕偛澧介悡顖氼熆鐟欏嫭绀€闁宠鍨块、娆戠磼閹惧墎绐楅梻浣告啞椤棝宕橀敐鍡欌偓娲倵楠炲灝鍔氭繛鑼█瀹曟垿骞橀懜闈涙瀭闂佸憡娲﹂崜娑㈡晬濞戙垺鈷戦柛娑樷看濞堟洖鈹戦悙璇ц含闁诡喕鍗抽、姘跺焵椤掆偓閻g兘宕奸弴銊︽櫌婵犮垼娉涢鍡椻枍鐏炶В鏀介柣妯虹仛閺嗏晛鈹戦鑺ュ唉妤犵偛锕ュ鍕箛椤掑偊绱遍梻浣筋潐瀹曟﹢顢氳閺屻劑濡堕崱鏇犵畾闂侀潧鐗嗙€氼垶宕楀畝鍕厱婵炲棗绻戦ˉ銏℃叏婵犲懏顏犵紒杈ㄥ笒铻i柤濮愬€ゅΣ顒勬⒒娴e懙褰掓晝閵堝拑鑰块梺顒€绉撮悞鍨亜閹哄秷鍏岄柛鐔哥叀閺岀喖宕欓妶鍡楊伓闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝栭梻渚€鈧偛鑻晶鎵磼椤曞棛鍒伴摶鏍归敐鍫燁仩妞ゆ梹娲熷娲偡閹殿喗鎲奸梺鑽ゅ枂閸庣敻骞冨鈧崺锟犲礃椤忓棴绱查梻浣虹帛閻熴垽宕戦幘缁樼厱闁靛ǹ鍎抽崺锝団偓娈垮枛椤攱淇婇幖浣哥厸闁稿本鐭花浠嬫⒒娴e懙褰掑嫉椤掑倻鐭欓柟杈惧瘜閺佸倿鏌ㄩ悤鍌涘
首页 > 测试测量 > 测试测量技术文库 > 基于双层CAN总线的声纳数据通信系统设计

基于双层CAN总线的声纳数据通信系统设计

时间:01-23 来源:电子科技 点击:

V时,OUT1输出低电平,OUT2输出高电平;当电源电压低于4.8 V时,OUT1输出高电平,OUT2输出低电平。ICL7665的输出信号通过光电耦合器TLP281接入PIC18F4580的I/O口,实现对电源电压的监控,使电源电压误差<4%。TLP281通过电光和光电传递信号,在电气上隔离信号的发送端和接收端。这种隔离作用能有效抑制噪声,消除接地回路的干扰。电源监测与隔离电路原理图如图4所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...

2.3 软件设计

通信程序主要包括节点初始化程序、数据发送程序、数据接收程序以及CAN总线出错处理程序等。为便于移植和资源共享,系统软件设计采用C语言实现,软件遵循模块化设计思想,采用结构化程序设计方案,使其具有良好的扩展性。

在CAN通信过程中,初始化包括设置SPI接口的数据传输速率、CAN通信的波特率、MCP2510的接收过滤器和屏蔽器以及发送和接收中断允许标志位等。内部和外部CAN控制器在接收数据时采用中断方式,发送数据时采用查询方式。与内部CAN控制器不同的是,读、写MCP2510的发送和接收缓冲器必须通过SPI接口协议的读写命令来实现。写指令首先被发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位,然后发送地址和数据。指令执行完毕后,数据被写进指定的地址单元中,再通过SPI接口协议的写命令来设置发送位以启动发送。读操作时,首先将读指令和地址发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位。同时把存贮在这个地址单元中的数据在SCK的下降沿输出到SO引脚。当执行读写操作时,CS引脚应始终保持在低电平。外部扩展CAN总线软件设计的流程图,如图5所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...

3 系统测试

CAN总线协议有很好的错误校验措施,当硬件检测到数据在传送过程中发生错误时,会自动重新发送数据,当某一节点的错误严重时,总线会自动关闭该节点,且不影响其他节点的数据传送。

为了验证系统数据采集及通信可靠性,分别对CAN总线上位机与各中间控制器节点、中间控制器与各采集单元节点进行实时仿真测试。仿真通信介质采用100 m长屏蔽电缆,采用多种数据帧结构,选用总线速率为20 kB/s,传送数据域长度为8 bit的数据帧。分别进行上位机与节点的单帧和多帧通信。从主控状态显示情况来看,无数据传送出错和数据丢失现象,性能稳定,验证系统具有一定的可靠性。

4 结束语

本文结合CAN总线在航海领域的应用状况,在研究CAN总线技术和PIC单片机功能的基础上,设计了一种基于双层CAN总线的声纳数据传输系统。本系统通过结合PIC18F4580内置CAN控制器及外扩展CAN控制器的方式,以具有双CAN总线接口的单片机中间控制器为核心,采用分级、分区域组合的思想实现两级、多区域数据信息的采集。系统充分融合了CAN总线传输距离远,传输速率高,抗干扰能力强的特点,通过实验检测,文中所提出的设计方案可行,完全满足声纳数据传输系统高稳定性、高可靠性的要求。系统不仅适用于船舶声纳数据的采集,而且可对CAN总线在航空领域的应用提供参考。

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top