(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Author
|
Matrix TSL
|
Version
|
2.3
|
Category
|
E-blocks 2
|
TCP/IP component
A set of routines used to control a ENC28J60 TCP/IP Module. Required connections VCC, Reset, GND, SCK, MISO, MOSI, CS. Leave these pins disconnected CLKOUT, ENC_WOL, ENC_INT
Component Source Code
Please click here to download the component source project: FC_Comp_Source_TCPIP_BL0187.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_TCPIP_BL0187.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
ControlLEDs
|
ControlLEDs
|
Allows both the LEDs on the Ethernet socket to be controlled. Useful for checking if the SPI communications are functioning correctly.
|
- BYTE
|
Mode
|
0=Off, 1=On, 2=Auto
|
- VOID
|
Return
|
CreateIPSocket
|
CreateIPSocket
|
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Protocol
|
Specifies which IP protocol to use
|
- BYTE
|
Broadcast
|
Allows broadcast type packets to be sent and received
|
- BYTE
|
Return
|
CreateMACSocket
|
CreateMACSocket
|
This macro creates a socket for sending and receiving Ethernet data using raw data.
|
- BYTE
|
Promiscuous
|
Receive everything (1) or just data bound for your MAC (0)
|
- BYTE
|
Broadcast
|
Allows broadcast messages to be accepted (1) or rejected (0)
|
- BYTE
|
Error
|
Allowsmessages with errors to be accepted (1) or rejected (0)
|
- BYTE
|
Return
|
CreateTCPSocket
|
CreateTCPSocket
|
This macro creates a socket for sending and receiving TCP data.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- UINT
|
Src_Port
|
Port Number
|
- BYTE
|
Return
|
CreateUDPSocket
|
CreateUDPSocket
|
This macro creates a socket for sending and receiving UDP data.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- UINT
|
Src_Port
|
Port Number
|
- BYTE
|
Return
|
DHCP_Setup
|
DHCP_Setup
|
|
- BYTE
|
Return
|
DNS_Lookup
|
DNS_Lookup
|
Resolve the URL into an IP address via the DNS server. Returns non-zero if successful
|
- STRING
|
URL
|
URL address string
|
- BYTE
|
IP
|
Returned IPv4 address
|
- BYTE
|
Return
|
GetLocalIP
|
GetLocalIP
|
Gets the local IP address
|
- BYTE
|
IP
|
4-byte Array to store the IP address
|
- VOID
|
Return
|
GetLocalMAC
|
GetLocalMAC
|
Gets the local MAC address
|
- BYTE
|
MAC
|
6-byte Array to store the MAC address
|
- VOID
|
Return
|
Initialise
|
Initialise
|
Initialises the SPI connection to the TCPIP module and sets up some initial values. Flashes the LEDs on and off twice to confirm SPI comms are active. LEDs are then configured to auto functionality.
|
- VOID
|
Return
|
ReadRegister
|
ReadRegister
|
Reads the value from a single register onboard the ENC28J60 module.
|
- BYTE
|
Address
|
|
- BYTE
|
Return
|
RxDataAvailable
|
RxDataAvailable
|
Check if data has been received. A non-zero return value indicates that data is available. This macro should be called regularly as it also processess supporting network traffic.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Return
|
RxDataSize
|
RxDataSize
|
This macro is used to detect the size of data collected by the Rx_data_available macro.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- UINT
|
Return
|
RxFlushData
|
RxFlushData
|
Once data reception has been completed, this macro should be called to discard the data packet and allow other data packets to be read.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- VOID
|
Return
|
RxMatchMyIP
|
RxMatchMyIP
|
This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's IP address.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Return
|
RxMatchMyMAC
|
RxMatchMyMAC
|
This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's MAC address entered in the component's property page.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Return
|
RxMatch_2_Bytes
|
RxMatch_2_Bytes
|
This macro returns a non-zero value when the next 2 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 4 bytes and 6 bytes.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Byte1
|
Specifies the value of the first byte
|
- BYTE
|
Byte2
|
Specifies the value of the second byte
|
- BYTE
|
Return
|
RxMatch_4_Bytes
|
RxMatch_4_Bytes
|
This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 2 bytes and 6 bytes.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Byte1
|
Specifies the value of the first byte
|
- BYTE
|
Byte2
|
Specifies the value of the second byte
|
- BYTE
|
Byte3
|
Specifies the value of the third byte
|
- BYTE
|
Byte4
|
Specifies the value of the fourth byte
|
- BYTE
|
Return
|
RxMatch_6_Bytes
|
RxMatch_6_Bytes
|
This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 2 bytes and 4 bytes.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Byte1
|
Specifies the value of the first byte
|
- BYTE
|
Byte2
|
Specifies the value of the second byte
|
- BYTE
|
Byte3
|
Specifies the value of the third byte
|
- BYTE
|
Byte4
|
Specifies the value of the fourth byte
|
- BYTE
|
Byte5
|
Specifies the value of the fifth byte
|
- BYTE
|
Byte6
|
Specifies the value of the sixth byte
|
- BYTE
|
Return
|
RxReadByte
|
RxReadByte
|
A call to this macro will return a byte of data in the reception buffer of the specified channel. It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Return
|
|
RxReadHeader
|
Once data in a particular channel has been received, the header will be filled with information about the received data. This macro will return the information in the header. The idx parameter specifies which byte of information in the header to read
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Idx
|
Specifies the byte index to return
|
- BYTE
|
Return
|
RxReadString
|
RxReadString
|
A call to this macro will return a string of data in the reception buffer of the specified channel. It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Length
|
|
- STRING
|
Return
|
RxSkipBytes
|
RxSkipBytes
|
Often when receiving data packets, it may be necessary to ignore large sections of the data. This can be achieved by reading each byte individually (and ignoring the returned data), but a better way is to use this Rx_skipbytes macro.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Count
|
Specifies how many bytes to skip
|
- VOID
|
Return
|
RxStart
|
RxStart
|
Move the received buffer read pointer back to the start
|
- BYTE
|
Channel
|
|
- VOID
|
Return
|
SetDestination
|
SetDestination
|
This is used in IP and UDP modes to set the destination of the intended data transfer.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
IP
|
|
- UINT
|
Port
|
Destination Port
|
- BYTE
|
Return
|
SetGateway
|
SetGateway
|
This macro sets up the Internet E-Block's Gateway address. In most circumstances, this macro will not be required as the gateway address setting in the component property page will remain constant throughout your application.
|
- BYTE
|
IP0
|
First Byte of IP address
|
- BYTE
|
IP1
|
Second Byte of IP address
|
- BYTE
|
IP2
|
Third Byte of IP address
|
- BYTE
|
IP3
|
Fourth Byte of IP address
|
- VOID
|
Return
|
SetLocalIP
|
SetLocalIP
|
This macro sets up the Internet E-Block's own IP address. In most circumstances, this macro will not be required as the IP address setting in the component property page will remain constant throughout your application.
|
- BYTE
|
IP0
|
First Byte of IP address
|
- BYTE
|
IP1
|
Second Byte of IP address
|
- BYTE
|
IP2
|
Third Byte of IP address
|
- BYTE
|
IP3
|
Fourth Byte of IP address
|
- VOID
|
Return
|
SetMACAddress
|
SetMACAddress
|
Allows the MAC Address specified in the component properties to be overridden. The MAC Address will revert back to the MAC specified in the component properties as part of the initialise macro.
|
- BYTE
|
MAC0
|
MAC Address Parameter
|
- BYTE
|
MAC1
|
MAC Address Parameter
|
- BYTE
|
MAC2
|
MAC Address Parameter
|
- BYTE
|
MAC3
|
MAC Address Parameter
|
- BYTE
|
MAC4
|
MAC Address Parameter
|
- BYTE
|
MAC5
|
MAC Address Parameter
|
- VOID
|
Return
|
SetSubnetMask
|
SetSubnetMask
|
This macro sets up the Internet E-Block's Subnet Mask. In most circumstances, this macro will not be required as the subnet mask setting in the component property page will remain constant throughout your application.
|
- BYTE
|
IP0
|
First Byte of IP address
|
- BYTE
|
IP1
|
Second Byte of IP address
|
- BYTE
|
IP2
|
Third Byte of IP address
|
- BYTE
|
IP3
|
Fourth Byte of IP address
|
- VOID
|
Return
|
TCP_Close
|
TCP_Close
|
When an established TCP connection has finished transmission of data, either the local application (i.e. your code) or the remote application (i.e. the application at the other end of the connection) can initiate closure of the socket.
|
- BYTE
|
Return
|
TCP_Connect
|
TCP_Connect
|
This macro puts a previously opened TCP channel in "active open" mode. This is the required mode when writing a TCP client application (e.g. using SMTP to send an email).
|
- STRING
|
URL
|
URL or IPv4 address
|
- UINT
|
Dst_Port
|
Destination Port
|
- BYTE
|
Return
|
TxEnd
|
TxEnd
|
Once the transmit buffer has been filled with data, call this macro to actually send the data.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- VOID
|
Return
|
TxSendByte
|
TxSendByte
|
This macro fills the specified channel's transmit buffer with data. It can fill the buffer with a single byte of data, or with a string of information.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- BYTE
|
Data
|
Data byte to append to Tx buffer.
|
- VOID
|
Return
|
TxSendMyIP
|
TxSendMyIP
|
This macro fills the specified channel's transmit buffer with 4 bytes of data representing this Internet E-Block's IP address as specified in the component's property page.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- VOID
|
Return
|
TxSendMyMAC
|
TxSendMyMAC
|
This macro fills the specified channel's transmit buffer with 6 bytes of data representing this Internet E-Block's MAC address as specified in the component's property page.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- VOID
|
Return
|
TxSendString
|
TxSendString
|
This macro fills the specified channel's transmit buffer with data. It can fill the buffer with a string of information.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- STRING
|
Data
|
Data byte to append to Tx buffer.
|
- BYTE
|
Length
|
|
- VOID
|
Return
|
TxStart
|
TxStart
|
This macro indicates the start of data transmission for the specified buffer. In TCP mode, data transmission can only begin once the socket has become established. In other modes, data transmission can occur as soon as the socket has been opened.
|
- BYTE
|
Channel
|
Specifies the communications channel 0-3
|
- VOID
|
Return
|
WriteRegister
|
WriteRegister
|
Writes a value to a single register onboard the ENC28J60 module.
|
- BYTE
|
Address
|
|
- BYTE
|
Data
|
|
- VOID
|
Return
|
Property reference
|
Properties
|
|
TCP IP Specifics
|
|
Server Port
|
Sets the server's TCP/IP port address which is used to filter incoming TCP packets.
|
|
Buffer Size
|
Number of bytes to use for the transmit and receive buffer, we actually use this +1 to allow for a null termination. 8-bit PICs should set this to 255 to allow compilation to succeed. Other devices can have larger buffers. Default = 500
|
|
SPI Settings
|
|
Channel
|
SPI Channel selector
|
|
Prescale
|
Prescale option selector
|
|
MOSI
|
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode.
|
|
MISO
|
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode.
|
|
CLK
|
SPI Clock Pin CLK - The Clock signal is driven by the SPI master.
|
|
CS / SS
|
Chip Select / Slave Select Pin Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device.
|
|
Reset Pin
|
|
|
LED Flash
|
When enabled the socket LEDs will flash on/off 500ms. Useful for SPI check.
|
|
Auto DHCP
|
When enabled the Initialisation will also include DHCP setup to auto configure settings.
|
|
MAC Address
|
|
MAC0
|
|
|
MAC1
|
|
|
MAC2
|
|
|
MAC3
|
|
|
MAC4
|
|
|
MAC5
|
|
|
IP Address
|
|
IP0
|
|
|
IP1
|
|
|
IP2
|
|
|
IP3
|
|
|
Gateway IP
|
|
Gateway0
|
|
|
Gateway1
|
|
|
Gateway2
|
|
|
Gateway3
|
|
|
Subnet Mask
|
|
Subnet0
|
|
|
Subnet1
|
|
|
Subnet2
|
|
|
Subnet3
|
|
|
Simulation
|
|
Label
|
|
|
Sim Type
|
Decides how to perform the simulation of the component. TCP IP - Communicates using the Windows TCP IP communications DLL SPI / Injector - Communicates using the CAL SPI to allow the communications to be analysed and debugged.
|
|
SPI Simulation
|
|
Scope Traces
|
Selects if the scope traces are automatically generated or not
|
|
Console Data
|
Selects if the console data is automatically generated or not
|
|
API
|
|