站内搜索
发作品签到
基于RTL8363SC的千兆双口VLAN光纤收发器
专业版

基于RTL8363SC的千兆双口VLAN光纤收发器

工程标签

WiFi/以太网

478
0
0
11

简介

千兆网线-光纤以太网信号的相互转换,支持VLAN功能

简介:千兆网线-光纤以太网信号的相互转换,支持VLAN功能

开源协议

CC-BY-SA-4.0

创建时间:2026-04-27 00:07:54更新时间:2026-04-27 10:47:59

描述

项目简介

千兆网线-光纤以太网信号的相互转换

项目功能

基于螃蟹的RTL8363SC芯片,支持一个光口,两个千兆电口,提供两个固件,分别是傻瓜互通功能和VLAN功能。预留SFP+接口,芯片支持HISGMII功能,后期有望升级光口2.5G。

项目参数

适用于家庭内网络,开发商预留的弱电箱到书房只有一根单模光纤,没有网线,所以开发了这个项目,书房端使用RTL8363SC的双口交换机转换器,弱电箱端使用RTL8367S的五口交换机转换器,充分利用光纤。

划分两组VLAN,分别WAN网络和LAN网络,书房端的RTL8363SC的双口交换机刚好一个口WAN一个口LAN两根线接在路由器上,弱电箱的RTL8367S的双口交换机一个口WAN(接光猫)四个口LAN(接到别的房间)

目前使用的是芯片的SGMII模式,光口跑在千兆上。芯片支持HISGMII模式,可以跑2.5G网络,但是因为另一端的8367S的板子上没有画SFP,所以目前只跑在千兆。

注意事项

打样参数
JLC04101H-7628 0.8mm

软件代码

int main(void)
{
	uint32_t i = 0,regValue,regValue2;
	rtk_api_ret_t errorcode;
	APP_SystemClockConfig();
	LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA);
	Base_timer_Init();
	SMI_Interface_GPIO_Init();
	SMI_RST_L;
	SMI_SCL_H;
	SMI_SDA_H;
	LED_OFF;	
	LL_mDelay(100);
	SMI_RST_H;
	LL_mDelay(500);
	
	for(i=0;i<10;i++)
	{
		errorcode = rtk_switch_init();
		if(errorcode == RT_ERR_OK)break;
		LL_mDelay(100);
	}
	if(errorcode != RT_ERR_OK)goto rtk_error_init;
	
	LL_mDelay(1);	
	
	rtk_port_mac_ability_t mac_cfg ;
	mac_cfg.forcemode = 1;
	mac_cfg.speed = PORT_SPEED_1000M;
	mac_cfg.duplex = PORT_FULL_DUPLEX;
	mac_cfg.link = PORT_LINKUP;
	mac_cfg.nway = DISABLED;
	mac_cfg.txpause = ENABLED;
	mac_cfg.rxpause = ENABLED;
	
	errorcode = rtk_port_macForceLinkExt_set(EXT_PORT0, MODE_EXT_1000X,&mac_cfg);
	if(errorcode != RT_ERR_OK)goto rtk_error_init;	
	
	//VLAN 10 用作WAN网络 UTP_PORT2-utag  EXT_PORT0-tag
	//VLAN 20 用作LAN网络 UTP_PORT3-utag  EXT_PORT0-tag
	//UTP_PORT2 PID=10
	//UTP_PORT3 PID=20		
	rtk_vlan_init();
	rtk_vlan_cfg_t vlan1, vlan2;
	#define VLAN1_VID 10
	#define VLAN2_VID 20	
	
	memset(&vlan1, 0x00, sizeof(rtk_vlan_cfg_t));
	RTK_PORTMASK_CLEAR(vlan1.mbr);
	RTK_PORTMASK_CLEAR(vlan1.untag);
	rtk_vlan_set(1, &vlan1);		

	memset(&vlan1, 0x00, sizeof(rtk_vlan_cfg_t));
	RTK_PORTMASK_PORT_SET(vlan1.mbr, UTP_PORT2);
	RTK_PORTMASK_PORT_SET(vlan1.mbr, EXT_PORT0);
	RTK_PORTMASK_PORT_SET(vlan1.untag, UTP_PORT1);
	rtk_vlan_set(VLAN1_VID, &vlan1);	
		
	memset(&vlan2, 0x00, sizeof(rtk_vlan_cfg_t));
	RTK_PORTMASK_PORT_SET(vlan2.mbr, UTP_PORT3);
	RTK_PORTMASK_PORT_SET(vlan2.mbr, EXT_PORT0);
	RTK_PORTMASK_PORT_SET(vlan2.untag, UTP_PORT3);
	rtk_vlan_set(VLAN2_VID, &vlan2);
	/* set PVID for each port */
	rtk_vlan_portPvid_set(UTP_PORT2, VLAN1_VID, 0);
	rtk_vlan_portPvid_set(UTP_PORT3, VLAN2_VID, 0);

	i=0;
	while (1)
	{	
		i++;
		if(i >= 20)
		{
			rtl8367c_getAsicReg(RTL8367C_REG_PORT6_STATUS, ®Value);
			if(regValue&0x10)SMI_LED_ON;
			else SMI_LED_OFF;
			i = 0;
		}
		
		
		LL_mDelay(10);
	}
	rtk_error_init:;	
	while(1)
	{
		SMI_LED_ON;
		LL_mDelay(50);
		SMI_LED_OFF;
		LL_mDelay(50);
	}
}	

完整工程不开源,提供参考代码,提供两个固件,一个是傻瓜直通,一个是划分VLAN

组装流程

3D打印外壳还在验证中,后续更新

先组装电口 测试没问题再装光口
IMG_20260423_055818.jpg

焊接细节
IMG_20260426_235402.jpg

实物图

完成图

IMG_20260426_230606.jpg

IMG_20260426_230612.jpg

IMG_20260426_230801.jpg

IMG_20260426_094659.jpg

网络测试
光模块旁边的蓝色的LED用于指示光纤是否连通
IMG_20260426_230230.jpg

QQ截图20260427023155.png

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
PY32_RTL8363SC_启用VLAN.hex
19
2
PY32_RTL8363SC_傻瓜.hex
20
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航