Всё от задачи зависит. Что вы за устройство получить хотите? можно написать, как работать с tcp/ip стеком?
По разному можно работать - есть такие варианты:
1) Открывать соединение по TCP/UDP и посылать пакеты с помощью AT-команд. Самый простой вариант.
2) Реализовать (или найти готовый) PPP. Это гораздо сложнее.
Я работал с TCP в C#
Какое отношение имеет C# к микроконтроллерам? Или вам и на Windows решение сгодиться? Тогда ничего писать не надо - Windows умеет работать с модемами.
Там вся рутина скрыта в классах.
Откуда эти классы возмутся-то? Кто их писать будет, да ещё и в открытый доступ выкладывать?
это нереально, они здоровенные.
Не так уж и сложно - нужно уметь послать десяток-другой АТ-команд в нужной последовательности и разобрать ответы от них.
Я предполагаю, что существуют библиотеки для этого.
Существуют у тех кто их написал для решения своей задачи. Но обычно никто свои исходники выкладывать не будет, хотя может и можно найти что-то open source, но насколько оно вам подходяще будет...
То же самое и по поводу GPS.
Врядли там очень кочественно сделано - скорей всего что-то простейшее реализовано, то есть всё равно допиливать придётся.