ARMs are the microcontrollers of the day, and NXP has a wide offering of them. This web page lists literally too many Ethernet controllers to mention all here, as of this date (2011-07-13):
17 ARM7 devices
2 ARM9 devices
16 Cortex-M3 devices
I moved the ARM advantages discussion to this answer.
After much googling and mashing together various answers, I got it working.
Here's the AT command sequence. You can test this from start to finish, you'll just need to confirm the APN of the carrier you're using.
// My comments are here
Command to send is here Expected responses are here
// See if the SIM900 is ready
First of all, the STM32F103 model doesn't have an Ethernet peripheral, so you've got two choices here -- the less optimal one would be to find some kind of bridge IC that supports some of the other hardware interfaces supported by this model (USART, I2C, SPI, etc.) The most optimal one would be switching to the STM32F107 connectivity line model, which has an ...
If you're going to use Microchip's TCP/IP Stack, the PIC18 is the 'lowest-end' family of PICs that the software stack supports.
On their Ethernet page, Microchip recommends the PIC18F97J60. It has MAC and 10BASE-T PHY integrated.
IEEE 802.3 compatible Ethernet Controller
Fully Compatible with 10/100/1000Base-T networks
Integrated MAC and 10BASE-T ...
As a few of the comments referred to, TCP/IP is a high level protocol that specifies how packets of data are sent and received. In fact, TCP sits on top of IP. These are actually separate from the lower level communications. For example you can have TCP/IP run on top of Ethernet which is the PHY (physical layer) specified by IEEE 802.3 specification. Also, ...
Consider these embedded SSL libraries:
And maybe http://gitorious.org/tropicssl/
Tropicssl and polarssl originated from http://www.ohloh.net/p/xyssl
Tropicssl and xyssl are BSD licensed, whereas as all the others are GPL with an option for a proprietary ...
Depending on just how easy you want to make your life I would recommend using an MBED and purchasing a magjack and ethernet breakout board (see sparkfun) for connecting up the cable and dealing with the signal conditioning. The supporting model is the mbed NXP LPC1768.
I managed to get an mbed sending data to my remote server (ie. over the internet) in ...
They exist, but aren't likely to be free. Typically a processor handles TCP/IP. It may get a hardware assist from hardware, for example the checksum.
An example of a non-free one is from Hitech Global. It is available in Verilog or netlist. Comblock has one too, but in VHDL, not Verilog.
First and foremost: Do not use the CC3000 module. I tried it, and failed miserably after many hours of work involved. The driver which comes with the module is unusable. You might want to browse the related TI forum and read through all the various people having problems, especially with hanging communication. Go for one of the successors (CC31xx/CC32xx) ...
All GSM modems that I know of have two modes: command and data. And that includes the SIM900. The modem starts out in command mode, where it is listening for AT commands, typically over a serial UART connection with a microcontroller.
AT commands are patterned after the Hayes telephone modems of the 1980s and 90s. AT stands for Attention. They are used ...
TCP/IP stack is designed to be generic as possible, so applications can interact with various data link protocols such as 802.3 (Ethernet), 802.11 (Wi-Fi), PPP (point-to-point protocol) and so on without needing to know what sort of link they are using..
TCP/IP actually comprises several layers of protocols, e.g.
5. Application DNS, FTP, HTTP, IMAP, POP3, ...
[Referring to initial question where message was defined as char message;]
message is being put on the stack. By the time the TCP stack comes to send the data is the stack still valid?
strlen is not the way to determine the length of something that is not a string! Use sizeof(message) instead.
Check the lifetime of the TCPSocket object as well.
There is probably a way of doing this using "cooperative multitasking" --
a main loop that calls non-blocking functions (possibly using state machines).
Blink Without Delay shows the first steps in this direction.
Alas, lots of code has been written with blocking functions, so rather than re-write that code to be non-blocking, often people:
do the most ...
While ethernet is faster than a typical RS-232 interface for moving large amounts of data, it can actually be slower for rapidly interactive communication of short messages where the next item won't begin until the previous is finished.
Particularly if you are using TCP, one of the speed/sharing optimizations called the Nagle algorithm can end up slowing ...
I'm late to the party here but I recommend the TI Stellaris EK-LM3S6965. It's an ARM Cortex M3 part with built-in Ethernet controller including PHY. For prototyping I used their evaluation kit, which has an Ethernet jack, small OLED display (great for debugging and barebones UI), SD card slot, speaker, buttons, LEDs and breakouts for wiring stuff up to the ...
The nanode is open source and only £22 / $40 shipped. I've just bought two for home energy/environmental monitoring via pachube.
30 second pitch from the site:
Nanode is an open source Arduino-like board that has in-built web connectivity. It connects to a range of wireless, wired and ethernet interfaces. It allows you to develop web based sensor and ...
Yes it is possible.
For the low end, you could have a look at http://opencores.org/project,tcp_socket (800 LUTs in Spartan 6).
At the high end, see http://dx.doi.org/10.1109/FCCM.2015.12 (slides) for 10 Gbps on Virtex7.
In simple terms, with NRZ encoding and reception, unless you have perfectly synchronous clocks at both ends it won't handle long periods of logic 1 or logic 0 being transmitted. This is because one clock will drift relative to the other and therefore you are limited to how many successive 1's or 0's that can be adequately decoded before the clocks get out of ...
You are better off with a Raspberry Pi or a Beaglebone board, as either of those are full-blown computers that are directly running Linux variants. You would find that the standard implementation of tcpdump would directly work on them (if it's not already included in the base operating system).
The Arduino Ethernet shield is basically a separate processor ...
This evidences how each one of us sees the internet from his point of view. Starting by some basics have a look at this picture:
Image Attribution : Chunte7 [CC BY-SA 3.0 (full license)]
As you can see the internet can be divided into 4 layers, some times 5 by dividing the network access layer into other two layers, that are in the image on the right. ...
You can use almost any MCU with Wiznet W5500 embedded MAC + PHY controller, it is driven by SPI. The advantages are: it has built-in network stack, Tx/Rx buffers, requires minimum MCU pins, simplified programming.
I just found another interesting option - AX88796C from ASIX, it also has both MAC + PHY, 10\100Mbps Ethernet and up to 40MHz SPI interface ...
The question is not clear on whether you want to build your own device (in which case the question belongs here), or are looking for shopping suggestions or search help for the many such products commercially available: 1, 2, 3, 4.
Clearly, from the example products above, it is feasible.
TCP/IP is not, strictly speaking, an OSI network - the OSI model only maps exactly onto the OSI network protocols (X25, X400 etc).
There's also an iceberg hidden in your question of which the data card is just the tip: the 3G data network the card connects to ("UTRAN") is not a simple thing and includes several sorts of link. It's almost entirely ...
You may want to explore the ENC28J60. It's an external chip from the PIC that handles all the Ethernet. It interfaces to the PIC via SPI bus. Just choose a PIC that has enough flash and RAM for the TCP/IP Stack. You can download and compile to a simulator to see how much space things take.
I've used the TEMAC core directly instanciated in logic so I can probably give you some thoughts and answers.
Firstly, Xilinx provides a whole host of documents for each of it's IP cores. They also keep documents for different versions of the core, so be careful to pick the right document. A search of the Xilinx support documents came up with ...
It may not be 100% what this question is asking, but for projects where the production runs are fairly small I've started to see people embedding pre-built boards like the raspberry pi. This has a lot of advantages:
The price isn't too much more than one of the higher end CPUs with ethernet (at least for low-volumes), and you skip a whole load of design/...
512 channels of high-current PWM driver;
Some means of configuring any/all of the channels on the fly;
Some means of communicating with the configuration device.
If you can find a multi-channel high-current PWM driver with a serial control interface then that would be a good start (because you could eliminate the FPGA's). Failing that, to me, ...
Those functions are not called by you... they're provided by you.
You implement those functions in your application to handle a MODBUS master's request for data from your slave. Look at examples provided online (search for those function names... what Tut provided)
You'll need to call the MODBUS library's port setup functions and periodic polling functions ...
I don't know what "Serial over IP" is -- TCP/IP provides a bidirectional socket connection that can carry many different application protocols. I've never seen an off-the-shelf RS-232-to-GPRS box. You'll probably have to build something custom -- either using a GPRS module designed to interface with an MCU (these typically have a built-in TCP/IP stack, so ...