MiniProject 010123120 Embedded System Design Lab นาฬิกาปลุก
Ethernet mini ENC28J60
การเชื่อมต่อกับไมโครคอนโทรลเลอร์
โดยจะใช้การเชื่อมต่อแบบ SPI
Bus และในส่วนของระบบไฟ ไอซี ENC28J60 จะทำงานที่แรงดัน
3 Voltage จึงได้สร้างวงจรบัฟเฟอร์เพื่อให้สำหรับรองรับการเชื่อมต่อระบบไฟ
ระหว่าง 3V กับ 5V
เป็นโมดูลที่ออกแบบมาเพื่อเป็นตัวกลางในการเชื่อมต่อระบบการสื่อสารระหว่างไมโครคอนโทรลเลอร์
กับโครงข่าย Ethernet ซึ่งรองรับการทำงานของProtocol
TCP/IP โดยใช้ไอซี ENC28J60 ซึ่งรองรับมาตรฐานการสื่อสาร
IEEE 802.3 เชื่อมต่อสัญญาณควบคุมผ่าน SPI Bus ความเร็วสูงสุด 10 Mb/s ในการพัฒนาโปรแกรมทางบริษัท Microchip จะสนับสนุนตัว Microchip
TCP/IP Stack ซึ่งสามารถดาวน์โหลด และ นำไปใช้ได้ฟรีที่เว็บไซต์ของ
Microchip (www.microchip.com) โดยคุณสมบัติคร่าวๆ ของ ENC28J60 จะเป็นดังนี้
คุณสมบัติของ IC ENC28J60
General:
·
IEEE 802.3 compatible
Ethernet Controller
·
Integrated MAC and
10BASE-T PHY
·
8 Kbyte
Transmit/Receive Packet Dual Port Buffer SRAM
·
Programmable Automatic
Retransmit on Collision
·
Programmable Padding
and CRC Generation
·
Programmable Automatic
Rejection of Erroneous Packets
·
SPI™ Interface with
speeds up to 10 Mb/s
·
Supports Full and
Half-Duplex modes
Code :
เป็นการตั้งค่าให้กับ SPI2 สำหรับนำมาใช้เชื่อมต่อระหว่าง
ไมโครคอนโทรลเลอร์ กับ Module Ethernet
เป็นส่วนที่ประกาศ object จากclass
UIPEthernetClass
เป็นส่วนไว้กำหนด IP address, Port, DNS, GATE,
SUBnet ให้กับ Module Ethernet และให้เริ่มต้นการทำงาน
ซึ่งอยู่ในส่วนของ int main()
เป็นส่วนไว้กำหนด IP address, Port ของ
Computer และทำการส่ง Data ที่อยู่ใน char
aray ชื่อ str_to_send ซึ่งอยู่ในส่วนของ while loop
จากนั้นทำการรันไฟล์ server เพื่อตรวจสอบการใช้งานของ Module Ethernet
Code server.py
import socket,SocketServer,time
print 'Server started...' #print server start host, port = '192.168.1.173',51000 #set host and port server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) server.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) server.bind((host,port)) server.settimeout(5) j=0 start_time = time.time() try: server.sendto("Hello",('192.168.1.63',50000)) #ip, port module ethernet while True: try: print "send" (received, addr) = server.recvfrom(65535) server.sendto(received,addr) print j, ': received from ', str(addr), 'data is ', received j+=1 except socket.timeout: print "Out" pass except KeyboardInterrupt as ex: print ex |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น